Recording medium, playback apparatus, method and program

ABSTRACT

A plurality of video streams and STN_table are recorded in the local storage  200 . Each of the plurality of video streams is a secondary video stream to be played together with a primary video stream, and includes picture data representing a child image to be displayed in Picture in Picture that is composed of a parent image and the child image. In the STN_table, entries of secondary video streams that are permitted to be played are described in the order of priority.

TECHNICAL FIELD

The present invention belongs to a technical field of Picture inPicture.

BACKGROUND ART

Picture in Picture is technology for displaying composite video where asecondary window is superimposed onto a primary screen. This technologyalso allows for changing the position of the secondary window on theprimary screen and switching between display and non-display of thecomposite video.

Note that the structure of a standard model of a DVD player is describedin the following patent reference 1.

<Patent Reference 1> Japanese Patent Publication No. 2813245

DISCLOSURE OF THE INVENTION Problem that the Invention is to Solve

To realize such Picture in Picture in the DVD-Video standard applicationformat requires at least two video streams. This is because the standardmodel of DVD-Video players is not designed to have a function ofsimultaneously decoding multiple video streams, specifying time andposition, and then playing two or more videos superimposed one on top ofthe other. In order to switch between composite video and non-compositevideo or to change the position for the composite video, it is requiredto record, on a DVD-Video, individually a composite stream, anon-composite stream and a stream in which the composite position ischanged. Then, a DVD-Video player is instructed to play one of them.

Regarding BD-ROMs, on the other hand, the video transition from SDTV toHDTV has been made, resulting in an increase in the volume of data.Accordingly, if it is tried to record individually a composite stream, anon-composite stream and a stream with different composite position on aBD-ROM, the total size of data becomes prohibitively large, and thevideo streams for Picture in Picture cannot fit in a BD-ROM. Therefore,in the BD-ROM standard, the standard model of BD-ROM players has beenprovided with a function of simultaneously decoding multiple videostreams to obtain two noncompressed videos and superimposing thesevideos.

Since the standard model has such a function, it is only necessary toindividually record a primary video stream structuring a primary videoand a secondary video stream structuring a secondary video. Thisrecording format has an advantage in terms of data size since theprimary video is not recorded redundantly on a BD-ROM. In addition,video is not embedded in advance, and therefore the composite positionand time for the secondary video can be switched according to a useroperation, enhancing the versatility.

However, whereas it is often the case that primary videos of BD-ROMs arecreated in HDTV, secondary videos are sometimes created in 50 frames/secinterlace mode (50i) and in 60 frames/sec interlace mode (60i). This isbecause secondary video streams are displayed in a small window in thescreen and therefore require half or less resolution than primaryvideos. However, not all playback apparatuses can play in 50i and 60imodes because 50i is the PAL format and 60 is the NTSC format. Playbackapparatuses in each broadcast zone usually have ability to play only inthe mode, and playback apparatuses in another broadcast zone do not havethe ability to play in the mode. Accordingly, in the case where asecondary video is created in the PAL format, for example, and arecording medium on which the secondary video is recorded is mounted ona playback apparatus in the NTSC format, the playback apparatus cannotperform Picture in Picture.

In addition, when a secondary video is created in HDTV, some playbackapparatuses cannot decode the secondary video. This happens because,although standard BD-ROM playback apparatuses are planned to be equippedwith video decoders each for primary videos and secondary videos, thesecondary video decoder does not have an HDTV decoding function.Providing the secondary video decoder with such a function means leavinglittle chance for simplification of the hardware structure of playbackapparatuses and adversely affecting price reduction of the products.

The fact that the availability of Picture in Picture operation dependson types of video materials and/or the ability of playback apparatuses,as described above, may become a new worrying factor for filmmakersproducing motion pictures and makers manufacturing playback apparatuses.

The present invention aims at offering a recording medium capable ofcausing playback apparatuses to reliably perform Picture in Pictureoperation even the apparatuses differ in what kind of materials they candecode.

Means to Solve the Problem

In order to achieve the above objective, the present invention is arecording medium on which a plurality of video streams and a table arerecorded. Here, each of the plurality of video streams is a secondaryvideo stream to be played together with a primary video stream, andincludes picture data representing a child image to be displayed inPicture in Picture that is composed of a parent image and the childimage. The table includes entries of secondary video streams that arepermitted to be played among the plurality of secondary video streams.

ADVANTAGEOUS EFFECTS OF THE INVENTION

Even if unplayable primary video streams are present within primaryvideo streams, conducting a procedure of selecting the next streamallows a chance to “use a primary video stream that the playbackapparatus can play”. Accordingly, even if playback apparatuses differ intheir playback abilities of secondary videos, it is possible to causeeach playback apparatus to display some secondary videos to therebyachieve Picture in Picture.

Thus, the present invention resolves the problem that some playbackapparatuses are capable of executing Picture in Picture while others arenot due to difference in their capabilities, and playback apparatusmanufacturers can therefore create and introduce playback apparatusesthat realize Picture in Picture into the market without worry.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a usage application of a recording medium according to thepresent invention;

FIG. 2 shows an internal structure of a BD-ROM;

FIG. 3 is a simplified drawing showing a structure of a file with anextension of .m2ts attached thereto;

FIG. 4 shows processes until TS packets constituting an AVClip arewritten to the BD-ROM;

FIG. 5 shows relationships between a physical unit of the BD-ROM and theSource packets constituting one file extent;

FIG. 6 shows what kind of elementary streams are multiplexed into anAVClip;

FIG. 7 shows a PID allocation map for elementary streams recorded on theBD-ROM;

FIG. 8 shows an example of Picture in Picture;

FIG. 9 shows an internal structure of Clip information;

FIG. 10 shows EP_map settings for a video stream of a motion picture;

FIG. 11 shows the data structure of PlayList information;

FIG. 12 shows the relationships between the AVClip and the PlayListinformation;

FIG. 13 shows an internal structure of a local storage 200;

FIG. 14 shows elementary streams multiplexed into SubClip;

FIG. 15 shows a PID allocation map in the BD-ROM standard;

FIG. 16 shows a data structure of the PlayList information;

FIG. 17 shows a close-up of the internal structure of the Subpathinformation;

FIG. 18 shows relationship of SubClips in the local storage 200,PlayList information in the local storage 200 and the MainClip on theBD-ROM;

FIG. 19 shows an internal structure of a STN_table;

FIG. 20 shows, within the overall structure of the STN_table shown inFIG. 19, stream_entries for secondary video streams;

FIG. 21A shows “Stream_entry” and “Stream_attribute” of the primaryvideo stream;

FIG. 21B shows “Stream_entry” and “Stream_attribute” of the secondaryvideo stream;

FIG. 22 shows an internal structure of a playback apparatus of thepresent invention;

FIG. 23 shows a structure of an output stage of the playback apparatus;

FIG. 24 functionally depicts the controller 22;

FIG. 25A shows bit assignment in PSR14;

FIG. 25B shows bit assignment in PSR29;

FIG. 26 shows status transition of the secondary video stream numbers inthe PSR14;

FIG. 27 is a flowchart showing a processing procedure of “Procedure whenplayback condition is changed” for secondary video streams;

FIG. 28 is a flowchart showing a processing procedure for selecting themost appropriate stream for the current PlayItem;

FIG. 29 is a flowchart showing a processing procedure of the “Procedurewhen stream change is requested” for a secondary video stream;

FIG. 30 shows an internal structure of the PiPcmetadata;

FIG. 31 shows coordinates that the PiP_horizontal_position andPiP_vertical_position possibly take on the video plane;

FIG. 32 shows how the PiP_metadata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=1;

FIG. 33 shows how the PiP_metadata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=2;

FIG. 34 shows how the PiP_metadata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=3;

FIG. 35 is a flowchart showing a procedure of playback control based onPicture in Picture;

FIG. 36 is a flowchart showing a procedure of playback control based onPicture in Picture;

FIG. 37 shows a relationship between a MainPath composed of one PlayItemand a Subpath composed of two SubPlayItem;

FIG. 38 is a flowchart showing a playback procedure based on PlayListinformation;

FIG. 39 is a flowchart showing a processing procedure of a seamlessconnection of SubPlayItems;

FIG. 40 is a flowchart showing a processing procedure of a seamlessconnection of SubPlayItems;

FIG. 41 shows internal structures of a Primary_audio_stream_entry and aSecondary_audio_stream_entry and an internal structure of aComb_info_Secondary_video_Secondary_audio;

FIG. 42A shows the bit assignment in the PSR1;

FIG. 42B shows the bit assignment in the PSR14;

FIG. 43 shows the status transition of the secondary audio streamnumbers in the PSR14;

FIG. 44 is a flowchart showing a processing procedure of “Procedure whenplayback condition is changed” for secondary audio streams;

FIG. 45 is a flowchart showing a procedure for selecting the mostappropriate secondary audio stream for the current PlayItem;

FIG. 46 is a flowchart showing a processing procedure for secondaryaudio streams;

FIG. 47 shows part of the STN_table, especially related to the PGtestSTstreams;

FIG. 48A shows the range of stream numbers that the stream number of thecurrent PGtestST stream can possibly take;

FIG. 48B shows the bit assignment in the PSR2;

FIG. 49 shows status transition of the PiP_PG_TextST stream numberswhich are stream numbers of Picture in Picture PGtestST streams;

FIG. 50 is a flowchart showing the processing procedure of the“Procedure when stream change is requested” for PGtestST streams;

FIG. 51 is a flowchart showing a processing procedure for selecting themost appropriate PGTextST stream for the current PlayItem;

FIG. 52 is a flowchart showing a processing procedure of “Procedure whenstream change is requested” for PGTextST streams;

FIG. 53 shows an internal structure of an authoring system of Embodiment6;

FIG. 54 is a flowchart showing a process flow of a formatting process;

FIG. 55 shows how the primary and secondary video streams aremultiplexed;

FIG. 56 shows a belong relationship in which multiplexed Source packetsequences belong to which GOPs of the primary and secondary videostreams;

FIG. 57 shows an EP_map set only for the primary video;

FIG. 58 shows EP_maps each set for the primary video and the secondaryvideo;

FIG. 59 shows PlayListMark information of the PlayList information;

FIG. 60 shows PlayListMark information specifying, as chapters,positions where secondary video streams exist;

FIG. 61A shows video fields constituting primary and secondary videos;

FIG. 61B shows combinations where the video fields to be composed arein-phase to one another;

FIG. 61C shows combinations where the video fields to be composed areantiphase to one another

FIG. 62A shows a Picture in Picture image in which the even-numberedlines of the primary video's video field match the even-numbered linesof the secondary video's video field;

FIG. 62B shows a Picture in Picture image in which the even-numberedlines of the primary video's video field match the odd-numbered lines ofthe secondary video's video field;

FIG. 63 shows, in the case where a given video field Fx from amongmultiple video fields constituting the primary video and a given videofield Fy from among multiple video fields constituting the secondaryvideo are to be composed and output, how to adjust the position anddisplay time of the video field Fy;

FIG. 64 shows the case where the field Fy of the secondary video isdisplayed together with an in-phase field of the primary video;

FIG. 65 shows the case where the field Fy of the secondary video isdisplayed together with an antiphase field of the primary video;

FIG. 66 shows the case where a secondary video field is displayed on aneven-numbered line of the primary video; and

FIG. 67 shows the case where a secondary video field is displayed on anodd-numbered line of the primary video.

EXPLANATION OF REFERENCES

-   -   1 a BD-ROM drive    -   1 b, c read buffers    -   1 a, b, c ATC counters    -   2 a, d Source Depacketizers    -   2 c, d ATC counters    -   3 a, c STC counters    -   3 b, d HD filters    -   4 a transport buffer    -   4 c elementary buffer    -   4 d video decoder    -   4 e re-order buffer    -   4 f decoded picture buffer    -   4 g video plane    -   5 a transport buffer    -   5 c elementary buffer    -   5 d video decoder    -   5 e re-order buffer    -   5 f decoded picture buffer    -   5 g video plane    -   6 a, b transport buffers    -   7 a, b buffers    -   8 a, b audio decoder    -   9 a mixer    -   11 a transport buffer    -   11 b interactive graphics decoder    -   11 c interactive graphics plane    -   12 a transport buffer    -   12 b buffer    -   12 c text based subtitle decoder    -   13 a transport buffer    -   13 b presentation graphics decoder    -   13 c presentation graphics plane    -   21 memory    -   22 controller    -   23 PSR set    -   24 PID conversion unit    -   25 network unit    -   26 operation receiving unit    -   41 PlayList processing unit    -   42 procedure executing unit    -   43 PiP control unit    -   44 mixing control unit    -   100 BD-ROM    -   200 local storage    -   300 playback apparatus    -   400 television    -   500 AV amplifier

BEST MODE FOR CARRYING OUT THE INVENTION Embodiment 1

The following describes an embodiment of the recording medium of thepresent invention. First, a usage application is described in relationto the implementation of the present invention. FIG. 1 shows the usageapplication of the recording medium of the present invention. In FIG. 1,the recording medium of the present invention is a local storage 200.The local storage 200 is used for supplying a motion picture to a hometheater system composed of a playback apparatus 300, a television 400,an AV amplifier 500, and speakers 600.

Next are described the BD-ROM 100, the local storage 200 and theplayback apparatus 300.

The BD-ROM 100 is a recording medium on which a motion picture isrecorded.

The local storage 200 is a hard disk that is built in the playbackapparatus, and is used for storing contents distributed from a server ofa motion picture distributor.

The playback apparatus 300 is a digital home electrical appliancesupported for networks, and has a function to play the BD-ROM 100. Theplayback apparatus 300 is also able to download a content from a serverapparatus of a motion picture distributor via a network, store thedownloaded content in the local storage 200, and combine this contentwith a content recorded on the BD-ROM 100 to expand/update the contentof the BD-ROM 100. With a technology called “virtual package”, it ispossible to combine a content recorded on the BD-ROM 100 with a contentstored in the local storage 200, treating data not recorded on theBD-ROM 100 as if it is recorded on the BD-ROM 100.

Thus concludes the description of the usage application of the recordingmedium of the present invention.

Next is described a production application of the recording medium ofthe present invention. The recording medium of the present invention canbe implemented as a result of improvements in the file system of aBD-ROM.

<General Description of BD-ROM>

FIG. 2 shows an internal structure of a BD-ROM. Level 4 in the figureshows the BD-ROM, and Level 3 shows a track on the BD-ROM. The figuredepicts the track in a laterally drawn-out form, although the track is,in fact, formed in a spiral, winding from the inside toward the outsideof the BD-ROM. The track is composed of a lead-in area, a volume area,and a lead-out area. The volume area in the figure has a layer modelmade up of a physical layer, a filesystem layer, and an applicationlayer. Level 1 in the figure shows a format of the application layer ofthe BD-ROM by using a directory structure. In Level 1, BD-ROM has BDMVdirectory under Root directory.

Furthermore, three subdirectories are located under the BDMV directory:PLAYLIST directory; CLIPINF directory; and STREAM directory.

The PLAYLIST directory includes a file to which an extension of mp1s isattached (00001.mp1s).

The CLIPINF directory includes files to each of which an extension ofc1pi is attached (00001.clip and 00002.clip).

The STREAM directory includes files to each of which an extension ofm2ts is attached (00001.m2ts and 00002.m2ts).

Thus, it can be seen that multiple files of different types are arrangedin the BD-ROM according to the directory structure above.

<BD-ROM Structure 1: AVClip>

First, files to which the extension “m2ts” is attached are explained.FIG. 3 shows a schematic structure of the file to which the extension“m2ts” is attached. The files to each of which the extension “m2ts” isattached (00001.m2ts and 00002.m2ts) store an AVClip. The AVClip is adigital stream in the MPEG2-Transport Stream format. The digital streamis generated by converting the digitized video and audio (upper Level 1)into an elementary stream composed of PES packets (upper Level 2), andconverting the elementary stream into TS packets (upper Level 3), andsimilarly, converting the Presentation Graphics (PG) stream for thesubtitles or the like and the Interactive Graphics (IG) stream for theinteractive purposes (lower Level 1 and lower Level 2) into the TSpackets (lower Level 3), and then finally multiplexing these TS packets.

Next, how the AVClip having the above-described structure is written tothe BD-ROM is explained. FIG. 4 shows what processes the TS packetsconstituting the AVClip are subjected to before they are written to theBD-ROM. Level 1 of the figure shows the TS packets constituting theAVClip.

As shown in Level 2 of FIG. 4, a 4-byte TS_extra_header (shaded portionsin the figure) is attached to each 188-byte TS packet constituting theAVClip to generate each 192-byte Source packet. The TS_extra_headerincludes Arrival_Time_Stamp that is information indicating the time atwhich the TS packet is input to the decoder.

The AVClip shown in Level 3 includes one or more “ATC_Sequences” each ofwhich is a sequence of Source packets. The “ATC_Sequence” is a sequenceof Source packets, where Arrival_Time_Clocks referred to by theArrival_Time_Stamps included in the ATC_Sequence do not include “arrivaltime-base discontinuity”. In other words, the “ATC_Sequence” is asequence of Source packets, where Arrival_Time_Clocks referred to by theArrival_Time_Stamps included in the ATC_Sequence are continuous.

Such ATC_Sequences constitute the AVClip, and are recorded on the BD-ROMwith a file name “xxxxx.m2ts”.

The AVClip is, as is the case with the normal computer files, dividedinto one or more file extents, which are then recorded in areas on theBD-ROM. Level 4 shows how the AVClip is recorded on the BD-ROM. In Level4, each file extent constituting the file has a data length that isequal to or larger than a predetermined length called Sextent.

Sextent is the minimum data length of each file extent, where an AVClipis divided into a plurality of file extents to be recorded.

The time required for the optical pickup to jump to a location on theBD-ROM is obtained by the following equation:

Tjump=Taccess+Toverhead.

The “Taccess” is a time required that corresponds to a jump distance (adistance to a jump-destination physical address).

The TS packets read out from the BD-ROM are stored in a buffer calledread buffer, and then output to the decoder. The “Toverhead” is obtainedby the following equation when the input to the read buffer is performedwith a bit rate called “Rud” and the number of sectors in the ECC blockis represented by Secc:

Toverhead≦(2×Secc×8)/Rud=20 msec.

TS packets read out from the BD-ROM are stored in the read buffer in thestate of Source packets, and then supplied to the decoder at a transferrate called “TS_Recording_rate”.

To keep the transfer rate of the TS_Recording_rate while the TS packetsare supplied to the decoder, it is necessary that, during Tjump, the TSpackets are continuously output from the read buffer to the decoder.Here, Source packets, not TS packets, are output from the read buffer.As a result, when the ratio of the TS packet to the Source packet insize is 192/188, it is necessary that during Tjump, the Source packetsare continuously output from the read buffer at a transfer rate of“192/188×TS_Recording_rate”.

Accordingly, the amount of occupied buffer capacity of the read bufferthat does not cause an underflow is represented by the followingequation:

Boccupied≧(Tjump/1000×8)×((192/188)×TS_Recording_rate).

The input rate to the read buffer is represented by Rud, and the outputrate from the read buffer is represented by TS_Recording_rate×(192/188).Therefore, the occupation rate of the read buffer is obtained byperforming “(input rate)−(output rate)”, and thus obtained by“(Rud−TS_Recording_rate)×(192/188)”.

The time “Tx” required to occupy the read buffer by “Boccupied” isobtained by the following equation:

Tx=Boccupied/(Rud−TS_Recording_rate×(192/188)).

When reading from the BD-ROM, it is necessary to continue to input TSpackets with the bit rate Rud for the time period “Tx”. As a result, theminimum data length Sextent per extent when the AVClip is divided into aplurality of file extents to be recorded is obtained by the followingequations:

$\begin{matrix}{{Sextent} = {{Rud} \times {Tx}}} \\{= {{{Rud} \times {{Boccupied}/\begin{pmatrix}{{Rud} - {{TS\_ Recording}{\_ rate} \times}} \\\left( {192/188} \right)\end{pmatrix}}} \geq}} \\{{{Rud} \times \left( {{{Tjump}/1000} \times 8} \right) \times}} \\{{{\begin{pmatrix}{\left( {192/188} \right) \times} \\{{TS\_ Recording}{\_ rate}}\end{pmatrix}/\begin{pmatrix}{{Rud} - {{TS\_ Recording}{\_ rate} \times}} \\\left( {192/188} \right)\end{pmatrix}} \geq}} \\{{\left( {{Rud} \times {{Tjump}/1000} \times 8} \right) \times}} \\{{{TS\_ Recording}{\_ rate} \times {192/{\begin{pmatrix}{{{Rud} \times 188} -} \\{{TS\_ Recording}{\_ rate} \times 192}\end{pmatrix}.}}}}\end{matrix}$

Hence,

Sextent≧(Tjump×Rud/1000×8)×(TS_Recording_rate×192/(Rud×188−TS_Recording_rate×192)).

If each file extent constituting the AVClip has the data length equal toor larger than Sextent that is calculated as a value that does not causean undertow of the decoder, even if the file extents constituting theAVClip are located discretely on the BD-ROM, TS packets are continuouslysupplied to the decoder so that the data is read out continuously duringthe playback.

FIG. 5 shows relationships between the physical unit of the BD-ROM andthe Source packets constituting one file extent. As shown in Level 2, aplurality of sectors are formed on the BD-ROM. The Source packetsconstituting the file extent are, as shown in Level 1, divided intogroups each of which is composed of 32 Source packets. Each group ofSource packets is then written into a set of three consecutive sectors.The group of 32 Source packets is 6144 bytes (=32×192), which isequivalent to the size of three sectors (=2048×3). The 32 Source packetsstored in the three sectors is called an “Aligned Unit”. Writing to theBD-ROM is performed in units of Aligned Units.

In Level 3, an error correction code is attached to each block of 32sectors. The block with the error correction code is referred to as anECC block. As long as accessing the BD-ROM in units of Aligned Units,the playback apparatus can obtain 32 complete Source packets. Thusconcludes the description of the writing process of the AVClip to theBD-ROM.

A more detailed explanation for elementary streams to be multiplexedinto MainClip is given below.

FIG. 6 shows the elementary streams that are multiplexed into theMainClip. The elementary streams to be multiplexed into STC-Sequence ofthe MainClip are: Primary video stream having PID of 0x1011; Primaryaudio streams having PIDs of 0x1100 to 0x111F; 32 PG streams having PIDsof 0x1200 to 0x121F; 32 IG streams having PIDs of 0x1400 to 0x141F; and32 Secondary video streams having PIDs of 0x1B00 to 0x1B1F.

The following describes these video streams, audio streams, PG streamsand IG streams.

<Primary Video Stream>

The primary video stream is a stream constituting the main movie, and iscomposed of picture data of SDTV and HDTV The video stream is in VC-1video stream, MPEG4-AVC or MPEG2-Video format. When the primary videostream is a video stream in MPEG4-AVC format, time stamps such as PTSand DTS are attached to IDR, I, P and B pictures, and playback controlis performed in units of a picture. A unit of a video stream, which is aunit for playback control with PTS and DTS attached thereto, is called“Video Presentation Unit”.

<Secondary Video Stream>

The secondary video stream is a stream constituting a commentary or thelike of the motion picture, and Picture in Picture is implemented bycomposing the playback video of the secondary video stream with theprimary video stream. The video stream is in VC-1 video stream formatMPEG4-AVC video stream format or MPEG2-Video video stream format, andincludes “Video Presentation Units”. The secondary video stream is in525/60 video format, 625/50 video format 1920×1080 format, or 1280×720format.

FIG. 8 shows an example of Picture in Picture. The figure shows thatonly the primary video is played until a predetermined time point tp. Itcan be seen that a video in which the secondary video is superimposedonto the primary video is played after the time point tp. Thus, thesecondary video stream is composed of a plurality of pictures, each ofwhich is superimposed onto one of the pictures of the primary video. Asthe secondary video streams shown in FIG. 6, secondary video streams tobe multiplexed into an AVClip, which is the same AVClip where theprimary video stream is multiplexed, are called “In_MUX_secondary videostreams”. General elementary streams to be multiplexed into the sameAVClip as the primary video stream, besides the secondary video streams,are called “In_MUX streams”.

<Primary Audio Stream>

The primary audio streams are streams for main audio tracks of themotion picture, and the formats of the primary audio streams includeLPCM audio stream format, DTS-HD audio stream format, DD/DD+ audiostream format, and DD/MLP audio stream format. Time stamps are attachedto audio frames in the audio streams, and playback control is performedin units of an audio frame. A unit of an audio stream, which is a unitfor playback control with a time stamp attached thereto, is called“Audio Presentation Unit”. Note that, although being not recorded on theBD-ROM here, audio streams for sub-audio tracks of a motion picture arecalled secondary audio streams.

<PG Stream>

The PG stream is a graphics stream constituting a subtitle written in alanguage. There are a plurality of streams that respectively correspondto a plurality of languages such as English, Japanese, and French. ThePG stream is composed of functional segments such as: PCS (PresentationControl Segment); PDS (Pallet Define Segment); WDS (Window DefineSegment); ODS (Object Define Segment); and END (END of Display SetSegment). The ODS (Object Define Segment) is a functional segment thatdefines a graphics object which is a subtitle.

The WDS is a functional segment that defines a drawing area of agraphics object on the screen. The PDS (Pallet Define Segment) is afunctional segment that defines a color in drawing a graphics object.The PCS is a functional segment that defines a page control indisplaying a subtitle. Such page control includes Cut-In/Out,Fade-In/Out, Color Change, Scroll, and Wipe-In/Out. It is possible withthe page control by the PCS to achieve a display effect, for example,fading out the current subtitle while displaying the next subtitle.

Besides the Presentation Graphics streams, streams representingsubtitles, which are not multiplexed into the same AVClip as the primaryvideo stream, include text subtitle (textST) streams. The textST streamsare streams representing the contents of the subtitles with charactercodes. In the BD-ROM standard, a combination of the PresentationGraphics stream and textST stream is called a “PGTextST stream”.

<IG Stream>

The IG streams are graphics streams for achieving interactive control.The interactive control defined by an IG stream is an interactivecontrol that is compatible with an interactive control on a DVD playbackapparatus. The IG stream is composed of functional segments such as: ICS(Interactive Composition Segment); PDS (Palette Definition Segment); andODS (Object Definition Segment). The ODS (Object Definition Segment) isa functional segment that defines a graphics object. Buttons on theinteractive screen are drawn by a plurality of such graphics objects.The PDS (Palette Definition Segment) is a functional segment thatdefines a color in drawing a graphics object. The ICS (InteractiveComposition Segment) is a functional segment that achieves a statechange in which the button state changes in accordance with a useroperation. The ICS includes a button command that is executed when aconfirmation operation is performed on a button.

FIG. 7 shows a PID allocation map for elementary streams recorded on theBD-ROM. The left column of the PID allocation map indicates multipleranges of PIDs. The right column indicates an elementary streamallocated to each of the ranges. When the figure is referred toaccording to this description, the following can be seen: theprogram_map is allocated in the PID range of 0x0100; the PCR in therange of 0x1001; the primary video stream in the range of 0x1011; theprimary audio streams in the range of 0x1100 to 0x111F; PG streams inthe range of 0x1200 to 0x121F; IG streams in the range of 0x1400 to0x141F; and IN_MUX_Secondary video streams in the range of 0x1B00 to0x1B1F.

As can be seen from the PID allocation map, the ranges for the primaryvideo stream and for the secondary video streams are different.

The PES packets of the secondary video streams for constituting Picturein Picture have different high bytes from those of PIDS of the PESpackets of the primary video stream. Therefore, even if the primaryvideo stream and secondary video streams are multiplexed into oneAVClip, the PES packets constituting each type of the video streams canbe supplied to a different decoder by referring to the high bytes ofPIDs.

<BD-ROM Structure 2: Clip Information>

Next are described files to which an extension “dpi” is attached. Files(00001.c1pi and 00002.c1pi) to which an extension “dpi” is attachedstore Clip information. The Clip information is management informationon each AVClip. FIG. 9 shows the internal structure of Clip information.As shown on the left-hand side of the figure, the Clip informationincludes:

i) “ClipInfo( )” storing therein information regarding the AVClip;

ii) “Sequence Info( )” storing therein information regarding the ATCSequence and the STC Sequence;

iii) “Program Info( )” storing therein information regarding the ProgramSequence; and

iv) “Characteristic Point Info (CPI( ))”.

The “Clipinfo” includes “application_type” indicating the applicationtype of the AVClip referred to by the Clip information. Referring to theClipInfo allows identification of whether the application type is theMainClip or SubClip, whether video is contained, or whether stillpictures (slide show) are contained. In addition, the above-mentioned TSrecording_rate is described in the ClipInfo.

The Sequence Info is information regarding one or more STC-Sequences andATC-Sequences contained in the AVClip. The reason that these informationare provided is to preliminarily notify the playback apparatus of thesystem time-base discontinuity and the arrival time-base discontinuity.That is to say, if such discontinuity is present, there is a possibilitythat a PTS and an ATS that have the same value appear in the AVClip.This might be a cause of defective playback. The Sequence Info isprovided to indicate from where to where in the transport stream theSTCs or the ATCs are sequential.

The Program Info is information that indicates a section (called“Program Sequence”) of the program where the contents are constant.Here, “Program” is a group of elementary streams that have in common atime axis for synchronous playback. The reason that the Program Info isprovided is to preliminarily notify the playback apparatus of a point atwhich the Program contents change. It should be noted here that thepoint at which the Program contents change is, for example, a point atwhich the PID of the video stream changes, or a point at which the typeof the video stream changes from SDTV to HDTV.

Next is described the Characteristic Point Info. The lead line cu2 inFIG. 9 indicates a close-up of the structure of CPI. As indicated by thelead line cu2, the CPI is composed of Ne pieces of EP_map_for one streamPIDs (EP_map_for_one_stream_PID[0] to EP_map_for_one_stream_PID[Ne-1]).These EP_map_for_one_stream_PIDs are EP_maps of the elementary streamsthat belong to the AVClip. The EP_map is information that indicates, inassociation with an entry time (PTS_EP_start), a packet number(SPN_EP_start) at an entry position where the Access Unit is present inone elementary stream. The lead line cu3 in the figure indicates aclose-up of the internal structure of EP_map_for_one_stream_PID.

It is understood from the close-up that the EP_map_for_one_stream_PID iscomposed of Ne pieces of EP_Highs (EP_High(0) to EP_High(Nc-1)) and Nfpieces of EP_Lows (EP_Low(0) to EP_Low(Nf-1)). Here, the EP_High plays arole of indicating upper bits of the SPN_EP_start and the PTS_EP_startof the Access Unit (Non-IDR I-Picture, IDR-Picture), and the EP_Lowplays a role of indicating lower bits of the SPN_EP_start and thePTS_EP_start of the Access Unit (Non-IDR I-Picture and IDR-Picture).

The lead line cu4 in the figure indicates a close-up of the internalstructure of EP_High. As indicated by the lead line cu4, the EP_High(i)is composed of: “ref_to_EP_Low_id[i]” that is a reference value toEP_Low; “PTS_EP_High[i]” that indicates upper bits of the PTS of theAccess Unit (Non-IDR I-Picture, IDR-Picture); and “SPN_EP_High[i]” thatindicates upper bits of the SPN of the Access Unit (Non-IDR I-Picture,DR-Picture). Here, “i” is an identifier of a given EP_High.

The lead line cu5 in the figure indicates a close-up of the structure ofEP_Low. As indicated by the lead line cu5, the EP_Low(i) is composed of:“is_angle_change_point(EP_Low_id)” that indicates whether thecorresponding Access Unit is an IDR picture;“I_end_position_offset(EP_Low_id)” that indicates the size of thecorresponding Access Unit; “PTS_EP_Low(EP_Low_id)” that indicates lowerbits of the PTS of the Access Unit (Non-IDR I-Picture, IDR-Picture); and“SPN_EP_Low(EP_Low_id)” that indicates lower bits of the SPN of theAccess Unit (Non-IDR I-Picture, IDR-Picture). Here, “EP_Low_id” is anidentifier for identifying a given EP_Low.

<Clip Information Explanation 2: EP_Map>

Here, the EP_map is explained using a specific example. FIG. 10 showsEP_map settings for a video stream of a motion picture. Level 1 shows aplurality of pictures (IDR picture, I-Picture, B-Picture, and P-Picturedefined in MPEG4-AVC) arranged in the order of display. Level 2 showsthe time axis for the pictures. Level 4 indicates a TS packet sequenceon the BD-ROM, and Level 3 indicates settings of the EP_map.

Assume here that, in the time axis of Level 2, an IDR picture or an Ipicture is present at each time point t1 to t7. The interval betweenadjacent ones of the time points t1 to t7 is approximately one second.The EP_map used for the motion picture is set to indicate t1 to t7 withthe entry times (PTS_EP_start), and indicate entry positions(SPN_EP_start) in association with the entry times.

<PlayList Information>

Next is described the PlayList information. A file (00001.mp1s) to whichextension “mp1s” is attached is a file storing therein the PlayList (PL)information.

FIG. 11 shows the data structure of the PlayList information. Asindicated by the lead line mp1 in the figure, the PlayList informationincludes: MainPath information (MainPath( )) that defines MainPath;PlayListMark information (PlayListMark( ) that defines chapter; andother extension data (Extension Data).

<PlayList Information Explanation 1: MainPath Information>

First is described the MainPath. The MainPath is a playback path that isdefined in terms of a video stream such as the primary video and anaudio stream.

As indicated by the arrow mp1, the MainPath is defined by a plurality ofpieces of PlayItem information: PlayItem information #1 to PlayIteminformation #m. The PlayItem information defines one or more logicalplayback sections that constitute the MainPath.

The lead line hs1 in the figure indicates a close-up of the structure ofthe PlayItem information. As indicated by the lead line hs1, thePlayItem information is composed of: “Clip_Information_file_name” thatindicates the file name of the playback section information of theAVClip to which the IN point and the OUT point of the playback sectionbelong; “Clip_codec_identifier” that indicates the AVClip encodingmethod; “is_multi_angle” that indicates whether or not the PlayItem ismulti angle; “connection_condition” that indicates whether or not toseamlessly connect the current PlayItem and the preceding PlayItem;“ref_to_STC_id[0]” that indicates uniquely the STC_Sequence targeted bythe PlayItem; “In_time” that is time information indicating the startpoint of the playback section; “Out_time” that is time informationindicating the end point of the playback section; “UO_mask_table” thatindicates which user operation should be masked by the PlayItem;“PlayItem_random_access_flag” that indicates whether to permit a randomaccess to a mid-point in the PlayItem; “Still_mode” that indicateswhether to continue a still display of the last picture after theplayback of the PlayItem ends; and “STN_table”. Among these, the timeinformation “In_time” indicating the start point of the playback sectionand the time information “Out_time” indicating the end point of theplayback section constitute a playback path. The playback pathinformation is composed of “In_time” and “Out_time”.

FIG. 12 shows the relationships between the AVClip and the PlayListinformation. Level 1 shows the time axis of the PlayList information(PlayList time axis). Levels 2 to 5 show the video stream that isreferenced by the EP_map.

The PlayList information includes two pieces of PlayItem information:PlayItem information #1; and PlayItem information #2. Two playbacksections are defined by “In_time” and “Out_time” included in thePlayItem information #1 and PlayItem information #2, respectively. Whenthese playback sections are arranged, a time axis that is different fromthe AVClip time axis is defined. This is the PlayList time axis shown inLevel 1. Thus, it is possible to define a playback path that isdifferent from the AVClip by defining the PlayItem information.

Thus concludes the description of the BD-ROM 100.

<Local Storage 200>

The following describes the local storage 200 that is a recording mediumof the present invention. FIG. 13 shows an internal structure of thelocal storage 200. As shown in the figure, the recording medium of thepresent invention can be produced by improving the application layer.

Level 4 of the figure shows the local storage 200 and Level 3 shows atrack on the local storage 200. The figure depicts the track in alaterally drawn-out form, although the track is, in fact, formed in aspiral, winding from the inside toward the outside of the local storage200. The track is composed of a lead-in area, a volume area, and alead-out area. The volume area in the figure has a layer model made upof a physical layer, a filesystem layer, and an application layer. Level1 in the figure shows a format of the application layer of the localstorage 200 by using a directory structure.

In the directory structure shown in FIG. 13, there is a subdirectory“organization#1” under a root directory. Also, there is a subdirectory“disk#1” under the directory “organization#1”. The directory“organization#1” is assigned to a specific provider of a motion picture.The directory “disk#1” is assigned to each BD-ROM provided from theprovider.

With this construction in which the directory assigned to a specificprovider includes directories that corresponds to BD-ROMs, download datafor each BD-ROM is stored separately. Similarly to the informationstored in the BD-ROM, under the subdirectory “disk#1”, the followinginformation is stored: PlayList information (“00002.mp1s”); Clipinformation (“00003.c1pi” and “00004.c1pi”); and AVClips (“00003.m2ts”and “00004.m2ts”.

The following describes components of the local storage 200: thePlayList information, Clip information and AVClips.

<Local Storage 200 Structure 1: AVClip>

The AVClips (00003.m2ts and 00004.m2ts) in the local storage 200 make upa SubClip. The SubClip is formed by multiplexing four types ofelementary streams—video streams, audio streams, PG streams and IGstreams. The following gives a detailed description of the types ofelementary streams which are multiplexed into an AVClip.

FIG. 13 shows an internal structure of the local storage 200. Theelementary streams to be multiplexed into the SubClip are: textST streamhaving PID of 0x1800; primary audio streams having PIDs of 0x1A00 to0x1A1F; 32 Out_of_MUX_Secondary video streams having PIDs of 0x1B00 to0x1B1F; 32 PG streams having PIDs of 0x1200 to 0x121F; and 32 IG streamshaving PIDs of 0x1400 to 0x141F. As the secondary video streams shown inFIG. 14, secondary video streams to be multiplexed into an AVClip, whichis a different AVClip where the primary video stream is multiplexed, arecalled “Out_of_MUX_Secondary video streams”. General elementary streamsto be multiplexed into a different AVClip from the primary video stream,besides the secondary video streams, are called “Out_of_MUX streams”.

FIG. 15 shows a PID allocation map for elementary streams multiplexedinto the SubClip. The left column of the PID allocation map indicatesmultiple ranges of PIDs. The right column indicates an elementary streamallocated to each of the ranges. When the figure is referred toaccording to this description, the following can be seen: theprogram_map is allocated in the PID range of 0x0100; the PCR in therange of 0x1001; PG streams in the range of 0x1200 to 0x121F; IG streamsin the range of 0x1400 to 0x141F; the textST stream in the range of0x1800; secondary audio streams in the range of 0x1A00 to 0x1A1F; andsecondary video streams in the range of 0x1B00 to 0x1B1F.

<Local Storage 200 Structure 2: PlayList Information>

Next is described the PlayList information in the local storage 200. Afile (00002.mp1s) to which extension “mp1s” is attached is informationthat defines a group made by binding up two types of playback pathscalled MainPath and Subpath as Playlist (PL). FIG. 16 shows the datastructure of the PlayList information. As shown in the figure, thePlayList information includes: MainPath information (MainPath( )) thatdefines MainPath; PlayListMark information (PlayListMark( )) thatdefines chapter; Subpath information that defines Subpath; and otherextension data (Extension Data). The internal structures of the PlayListinformation and PlayItem information are the same as those in theBD-ROM, and therefore their descriptions are omitted here. The followingdescribes the Subpath information.

<PlayList Information Explanation 1: Subpath Information>

Whereas the MainPath is a playback path defined for the MainClip whichis a primary video, the Subpath is a playback path defined for theSubClip which synchronizes with the MainPath.

FIG. 17 shows a close-up of the internal structure of the Subpathinformation. As indicated by the arrow hc0 in the figure, each Subpathincludes “SubPath_type” indicating a type of the SubClip and one or morepieces of SubPlayItem information ( . . . SubPlayItem( ) . . . ).

The lead line hc1 in the figure indicates a close-up of the structure ofSubPathItem information.

The SubPlayItem defines one or more elementary stream playback pathsseparated from the MainPath, and is used to express the type showing howthese playback paths are synchronized with the MainPath. When theSubPlayItems use subpaths of the primary audio, PQ IQ secondary audioand secondary video, these SubPlayItems synchronize with MainPaths usingPlayItems in the PlayList. The elementary streams used by the Subpathsfor the elementary stream playback are multiplexed into a SubClip, i.e.a Clip separated from the MainClip used by the PlayItem of the MainPath.

Next is described the internal structure of the SubPlayItem. Asindicated by the arrow hc1 in the figure, the SubPlayItem informationincludes: “Clip_information_file_name”; “Clip_codec_identifier”;“ref_to_STC_id[0]”; “SubPlayItem_In_time”; “SubPlayItem_Out_time”;“sync_PlayItem_id”; and “sync_start_PTS_of_PlayItem”.

The “Clip_information_fde_name” is information that uniquely specifies aSubClip corresponding to the SubPlayItem by describing a file name ofthe Clip information.

The “Clip_codec_identifier” indicates an encoding system of the AVClip.

The “ref_to_STC_id[0]” uniquely indicates a STC_Sequence at which theSubPlayItem aims.

The “SubPlayItem_In_time” is information indicating a start point of theSubPlayItem on the playback time axis of the SubClip.

The “SubPlayItem_Out_time” is information indicating an end point of theSubPlayItem on the Playback time axis of the SubClip.

The “sync_PlayItem_id” is information uniquely specifying, from amongPlayItems making up the MainPath, a PlayItem with which the SubPlayItemsynchronizes. The “SubPlayItem_In_time” is present on the playback timeaxis of the PlayItem specified with the sync_PlayItem_id.

The “sync_start_PTS_of PlayItem” indicates, with a time accuracy of 45KHz, where the start point of the SubPlayItem specified by theSubPlayItem_In_time is present on the playback time axis of the PlayItemspecified with the sync_PlayItem_id. In the case where the SubPlayItemdefines a playback section on a secondary video stream and thesync_start_PTS_of_PlayItem of the SubPlayItem indicates a time point onthe PlayItem time axis, the SubPlayItem realizes “synchronous Picture inPicture”.

In addition, an unspecified value (0xFFF) can be set in theSync_Start_Pts_of_PlayItem. The unspecified value causes the time point,on the time axis of the PlayItem specified by the Sync_PlayItem_Id, atwhich the user performed a lock operation to be a synchronous point withthe PlayItem specified by the Sync_PlayItem_Id. In the case where theunspecified value is set in the Sync_Start_Pts_of_PlayItem and theSubPlayItem indicates the playback of a secondary video stream, theSubPlayItem realizes “asynchronous Picture in Picture”.

<Details of Subpath Information 1. SubPath_Type>

Thus concludes the description of the SubPath information. Next isdescribed the SubPath_type. When a value ranging from 0 to 255 is settherein, the SubPath_type indicates what kind of playback path theSubPath defined by the SubPath information is. Three typical types ofplayback paths expressed by the Subpath types are explained below.

Subpath_Type=5

:Out-of-mux and Synchronous type of Picture in Picture presentation Path

In this case, the SubPlayItem defines a Picture in Picture playback pathwhich is played in synchronization with an Out-of-mux. The elementarystreams used in the path are multiplexed into a SubClip—i.e. a Clipseparated from the MainClip which is used by the PlayItem of theMainPath.

Subpath_Type=6

:Out-of-mux and Asynchronous type of Picture in Picture presentationPath

In this case, the SubPlayItem defines a Picture in Picture playback pathwhich is played out of synchronization with an Out-of-mux stream. Thatis, the elementary streams used in this path are multiplexed into aSubClip—i.e. a Clip different from a Clip used by the PlayItem. WhenSubPath_type=6, the SubPath includes only one SubPlayItem.

When SubPath_Type of the SubPlayItem is set to “6”, the sync_PlayItem_idand sync_start_PTS_of_PlayItem become Invalid and are set to 0x0000 and0x00000000, respectively.

Subpath_Type=7

:In-MUX and Synchronous type of Picture in Picture presentation Path

In this case, the SubPlayItem defines a Picture in Picture playback pathwhich is played in synchronization with an In-mux stream. That is, whenSubpath_Type=7, the elementary streams used in this path are multiplexedinto the same Clip together with the elementary streams used by thePlayItem to be played synchronously.

Thus concludes the description of the SubPath_type.

<Details of Subpath Information 2. Relationship of Three Objects>

Here, the three objects mean SubClips in the local storage 200, PlayListinformation in the local storage 200 and the MainClip in the BD-ROM.

FIG. 18 shows relationship of SubClips in the local storage 200,PlayList information in the local storage 200 and the MainClip on theBD-ROM. Level 1 of the figure indicates SubClips present in the localstorage 200. As shown in Level 1, there are different types of SubClips:a secondary video stream, a secondary audio stream, a PG stream and anIG stream. Any one of them is used as a SubPath for the synchronousplayback.

Level 2 indicates two time axes defined by PlayList information. Thelower time axis in Level 2 is a PlayItem time axis defined by thePlayItem information and the upper time axis is a SubPlayItem time axisdefined by the SubPlayItem.

As shown in the figure, it can be seen that theSubPlayItem_Clip_information_file name of the SubPlayItem informationplays a role in SubClip selection, selecting an Out-of-MUX stream as atarget for the playback section specification from among Out-of-MUXstreams which are multiplexed into the .m2ts file stored in the STREAMdirectory.

It can also be seen that the SubPlayItem.IN_time andSubPlayItem.Out_time play roles in defining the start point and endpoint of the playback section.

The arrow Sync_PlayItem_Id plays a role in specifying which PlayItem issynchronized with the SubPlayItem. The sync_start_PTS_of_PlayItem playsa role in determining a time point of the SubPlayItem_In_time on thePlayItem time axis.

Thus concludes the description of the SubPath information.

<STN_table>

A STN_Table is a feature of the PlayList information in the BD-ROM andlocal storage 200. The following describes PlayLIst information in thelocal storage 200.

The STN_table shows, out of multiple elementary streams multiplexed intothe AVClip specified by the Clip_Information filename of the PlayIteminformation and OUT_of_MUX streams specified by theClip_Information_file_name of the SubPlayItem information, onespermitted for playback. To be more specific, in the STN_table,Stream_entries of multiple In_MUX streams multiplexed into the MainClipand Out_of_MUX streams multiplexed into the SubClips are individuallyassociated with Stream attributes.

FIG. 19 shows an overall structure of a STN_table. FIG. 20 shows, withinthe overall structure of the STN_table shown in FIG. 19, stream_entriesfor secondary video streams. As shown in the figure, the STN_table arecomposed of n pieces of Secondary_video_stream_entries(Secondary_video_stream_entry[1] to Secondary_video_stream_entry[n]) andthe count of the secondary video streams(number_of_Secondary_video_stream_entries (=n).

The lead line hs1 indicates a close-up of the internal structure of theSecondary_video_stream_entry[1]. That is, theSecondary_video_stream_entry[1] to Secondary_video_stream_entry[n] aremultiple instances generated from the same class structure, and each hasthe same internal structure as indicated by the lead line hs1. A numberin the square parentheses

of each Secondary_video_stream_entry indicates an order of theSecondary_video_stream_entry in the STN_table.

As shown by the lead line hs1, the Secondary_video_stream_entry[1] iscomposed of “Stream_entry” presenting PIDs corresponding to theSecondary Video Stream Number=1 to the playback apparatus;“Stream_attribute” indicating a video attribute corresponding to theSecondary Video Stream Number=1;“Comb_info_Secondary_Video_Secondary_Audio” indicating secondary audiostreams which become playable when “1” is set in the Secondary VideoStream Number; and “Comb_info_Secondary_Video_PiP_PG_textST( )”indicating PG streams or textST streams which become playable when “1”is set in the Secondary Video Stream Number.

As shown by the lead line hs2, the Secondary_video_stream_entry[2] iscomposed of: “Stream_entry” presenting PIDs corresponding to theSecondary Video Stream Number=2 to the playback apparatus;“Stream_attribute” indicating a video attribute corresponding to theSecondary Video Stream Number=2;“Comb_info_Secondary_Video_Secondary_Audio” indicating secondary audiostreams which become playable when “2” is set in the Secondary VideoStream Number; and “Comb_info_Secondary_Video_PiP_PG_textST( )”indicating PG streams or textST streams which become playable when “2”is set in the Secondary Video Stream Number.

The same goes for the lead line hs3. Thus, thesecondary_video_stream_entry[x], which is located in the x-th place inthe STN_table indicates to the playback apparatus the followinginformation: PIDs of a secondary video stream corresponding to “x” when“x” is set for the number of the secondary video stream; the videoattribute of the secondary video stream; and available combinations withsecondary audio streams and PGTextST streams.

FIG. 21A shows “Stream_entry” and “Stream_attribute” of the primaryvideo stream. The Stream_entry includes “ref_to_stream_PID_of_mainClip”indicating a packet identifier of PES packets constituting the primaryvideo stream.

The Stream_attribute includes “Video_format” indicating a display formatof the video stream and “frame_rate” indicating a display frequency ofthe video stream.

FIG. 21B shows “Stream_entry” of a secondary video stream. As shown inthe figure, the Stream_entry of the Seconary video stream includes“ref_to_Sub_Path_id” indicating SubPath information that refers to theSecondary video stream and “ref_to_stream_PID_of_mainClip” indicating apacket identifier of PES packets constituting the Secondary videostream.

Thus concludes the description of the recording medium of the presentinvention. Besides these components, the BD-ROM also includes MovieObject, BD-J Object and Index.bdmv, for example.

Movie Object instructs a dynamic control procedure to the playbackapparatus with a similar description used in a DVD-Video while BD-JObject instructs a dynamic control procedure to the playback apparatuswith a description in a Java™ application. Index.bdmv is a table thatindicates the Movie Object or the BD-J Object that constitutes a title.

These components are not the focus of the present invention, and theirdescriptions are therefore omitted here in the present embodiment. Thusconcludes the description of the recording medium of the presentinvention.

<Playback Apparatus>

FIG. 22 shows an internal structure of the playback apparatus of thepresent invention. The playback apparatus of the present invention iscommercially manufactured based on the internal structure shown in thefigure. The playback device is mainly composed of two parts a system LSIand a drive device, and can be produced commercially by mounting theseparts on the cabinet and substrate of the device. The playback apparatusmanufactures in this way comprises: a BD-ROM drive 1 a; read buffers 1 band 1 c; an ATC counters 2 a and 2 c; source depacketizers 2 b and 2 d;ATC counters 2 b and 2 d; STC counters 3 a and 3 c; PID filters 3 b and3 d; a transport buffer (1B) 4 a; an elementary buffer (EB) 4 c; a videodecoder 4 d; a re-order buffer 4 e; a decoded picture buffer 4 f; avideo plane 4 g; a transport buffer (1B) 5 a; an elementary buffer (EB)5 c; a video decoder 5 d; a re-order buffer 5 e; a decoded picturebuffer 5 f; a video plane 5 g; buffers 6 a and 6 b; buffers 7 a and 7 b;audio decoders 8 a and 8 b; a mixer 9 a; switches 10 a, 10 b, 10 c, 10 dand 10 e; a transport buffer (TB) 11 a; an interactive graphics decoder11 b; an interactive graphics plane 11 c; a transport buffer (TB) 12 a;a buffer 12 b; a text based subtitle decoder 12 c; a transport buffer(TB) 13 a; a presentation graphics decoder 13 b; a presentation graphicsplane 13 c; a memory 21; a controller 22; a PSR set 23; a HD conversionunit 24; a network unit 25; an operation receiving unit 26; and thelocal storage 200. Note that an output stage of the playback apparatusis not shown in the figure. The output stage is described hereinafterwith the aid of another figure showing the internal structure.

The BD-ROM drive 1 a loads/ejects a BD-ROM, and executes access to theBD-ROM.

The read buffer (RB) 1 b accumulates Source packet sequences read fromthe BD-ROM.

The read buffer (RB) 1 c accumulates Source packet sequences read fromthe local storage 200.

The ATC counter 2 a is reset by using an ATS of the Source packetlocated at the beginning of the playback section within Source packetsconstituting the MainClip, and subsequently outputs ATCs to the sourcedepacketizer 2 b.

The source depacketizer 2 b takes out TS packets from source packetsconstituting the MainClip and sends out the TS packets. At the sending,the source depacketizer 2 b adjusts the time of an input to the decoderaccording to an ATS of each TS packet. To be more specific, at themoment when the value of the ATC generated by the ATC counter 2 abecomes the same as the ATS value of a Source packet, the sourcedepacketizer 2 b transfers only the TS packet to the HD filter 3 b atTS_Recording_Rate.

The ATC counter 2C is reset by using an ATS of the Source packet locatedat the beginning of the playback section within Source packetsconstituting the SubClip, and subsequently outputs ATCs to the sourcedepacketizer 2 d.

The source depacketizer 2 d takes out TS packets from source packetsconstituting the SubClip and sends out the TS packets. At the sending,the source depacketizer 2 d adjusts the time of an input to the decoderaccording to an ATS of each TS packet. To be more specific, at themoment when the value of the ATC generated by the ATC counter 2 cbecomes the same as the ATS value of a Source packet, the sourcedepacketizer 2 d transfers only the TS packet to the PID filter 3 d atTS_Recording_Rate.

The STC counter 3 a is reset by a PCR of the MainClip and outputs a STC.

The PID filter 3 b is a demultiplexing unit for the MainClip andoutputs, among Source packets output from the source depacketizer 2 b,ones having PID reference values informed by the PID conversion unit 24to the video decoders 4 d and 5 d, the audio decoder 8 a, theinteractive graphics decoder 11 b and the presentation graphics decoder13 b. Each of the decoders receives elementary streams passed throughthe PID filter 3 b and performs from decoding processing to playbackprocessing according to the PCR of the MainClip. Thus, the elementarystreams input to each decoder after being passed through the PID filter3 b are subjected to decoding and playback based on the PCR of theMainClip.

The STC counter 3 c is reset by a PCR of the SubClip and outputs a STC.The PID filter 3 d performs demultiplexing with reference to this STC.

The PID filter 3 d is a demultiplexing unit for the SubClip and outputs,among Source packets output from the source depacketizer 2 d, oneshaving HD reference values informed by the HD conversion unit 24 to theaudio decoder 8 b, the interactive graphics decoder 11 b and thepresentation graphics decoder 13 b. Thus, the elementary streams inputto each decoder after being passed through the HD filter 3 d aresubjected to decoding and playback based on the PCR of the SubClip.

The transport buffer (1B) 4 a is a buffer in which TS packets belongingto the primary video stream are temporarily accumulated when they areoutput from the PID filter 3 b.

The elementary buffer (EB) 4 c is a buffer in which pictures in theencoded state (I pictures, B pictures and P pictures) are stored.

The decoder (Dec) 4 d obtains multiple frame images by decodingindividual pictures constituting the primary video at everypredetermined decoding time period (DTS) and writes the frame images tothe video plane 4.

The decoded picture buffer 4 e is a buffer for storing noncompressedpictures obtained from the decoding process of the decoder 4 d.

The re-order buffer 4 f is a buffer for changing the order of decodedpictures from the decoded order to the order for display.

The primary video plane 4 g is a memory area for storing pixel data forone picture of the primary video. The pixel data is represented by a16-bit YUV value, and the video plane 4 g stores therein pixel data fora resolution of 1920×1080.

The transport buffer (TB) 5 a is a buffer in which TS packets belongingto a secondary video stream are temporarily accumulated when they areoutput from the PID filter 3 b.

The elementary buffer (EB) 5 c is a buffer in which pictures in theencoded state (I pictures, B pictures and P pictures) are stored.

The decoder (Dec) 5 d obtains multiple frame images by decodingindividual pictures constituting the secondary video at everypredetermined decoding time period (DTS) and writes the frame images tothe video plane 5.

The decoded picture buffer 5 e is a buffer for storing noncompressedpictures obtained from the decoding process of the decoder 5 d.

The re-order buffer 5 f is a buffer for changing the order of decodedpictures from the decoded order to the order for display.

The secondary video plane 5 g is a memory area for storing pixel datafor one picture of the secondary video. The pixel data is represented bya 16-bit YUV value, and the video plane 5 g stores therein pixel datafor a resolution of 1920×1080.

The buffer 6 a stores, from among TS packets output from thedemultiplexer 3 a, ones constituting a primary audio stream in afirst-in first-out manner and provides the TS packets to the audiodecoder 7 a.

The buffer 6 b stores, from among TS packets output from thedemultiplexer 3 b, ones constituting a secondary audio stream in afirst-in first-out manner and provides the TS packets to the audiodecoder 7 b.

The audio decoder 7 a converts TS packets stored in the buffer 6 a intoPES packets, decodes the PES packets to obtain noncompressed audio datain the LPCM state, and outputs the obtained audio data. This achieves adigital output of the primary audio stream.

The audio decoder 7 b converts TS packets stored in the buffer 6 b intoPES packets, decodes the PES packets to obtaine noncompressed audio datain the LPCM state, and outputs the obtained audio data. This achieves adigital output of the secondary audio stream.

The mixer 9 a performs a mixing of the digital audio in the LPCM stateoutput from the audio decoder 7 a with the digital audio in the LPCMstate output from the audio decoder 7 b.

The switch 10 a selectively provides TS packets read from the BD-ROM orTS packets read from the local storage 200 to the secondary videodecoder 5 d.

The switch 10 b selectively provides TS packets read from the BD-ROM orTS packets read from the local storage 200 to the presentation graphicsdecoder 13 b.

The switch 10 c selectively provides TS packets read from the BD-ROM orTS packets read from the local storage 200 to the interactive graphicsdecoder 11 b.

The switch 10 d is a switch between supplying or not supplying, to theaudio decoder 8 a, either of TS packets of a primary audio streamdemultiplexed by the demultiplexer 3 a and TS packets of a primary audiostream demultiplexed by the demultiplexer 3 b.

The switch 10 e is a switch between supplying or not supplying, to theaudio decoder 8 b, either of TS packets of a secondary audio streamdemultiplexed by the demultiplexer 3 a and TS packets of a secondaryaudio stream demultiplexed by the demultiplexer 3 b.

The transport buffer (TB) 11 a is a buffer in which TS packets belongingto an IG stream are temporarily accumulated.

The interactive graphics (IG) decoder 11 b decodes an IG stream readfrom the BD-ROM 100 or the local storage 200 and writes thenoncompressed graphics to the IG plane 12.

The interactive graphics (IG) plane 11 c is a plane in which pixel dataconstituting noncompressed graphics obtained by the decoding by the IGdecoder 11 b.

The transport buffer (TB) 12 a is a buffer in which TS packets belongingto a textST stream are temporarily accumulated.

The buffer (TB) 12 b is a buffer in which PES packets constituting atextST stream are temporarily accumulated.

As to a textST stream read from the BD-ROM 100 or the local storage 200,the text based subtitle decoder 12C converts the presented subtitle intobitmap using character codes and writes the bitmap into the PG plane 13c. Since font data stored in the BD-ROM 100 or the local storage 200 isused for the conversion, decoding a textST stream requires reading suchfont data in advance.

The transport buffer (TB) 13 a is a buffer in which TS packets belongingto a PG stream are temporarily accumulated.

The presentation graphics (PG) decoder 13 b decodes a PG stream readfrom the BD-ROM 100 or the local storage 200 and writes thenoncompressed graphics to the presentation graphics plane 14. A subtitleappears on the screen by decoding of the PG decoder 13 b.

The presentation graphics (PG) plane 13 c is a memory having an area ofone screen, and stores therein one screen of non-compressed graphics.

The memory 21 is a memory for storing therein current PlayListinformation and current Clip information. The current PlayListinformation is PlayList information that is currently processed, among aplurality of pieces of PlayList information stored in the BD-ROM. Thecurrent Clip information is Clip information that is currentlyprocessed, among a plurality of pieces of Clip information stored in theBD-ROM/local storage.

The controller 22 achieves a playback control of the BD-ROM byperforming PlayList playback (i.e. playback control in accordance withthe current PlayList information).

The PSR set 23 is a register built in the playback apparatus, and iscomposed of 64 pieces of Player Setting/Status Registers (PSR) and 4096pieces of General Purpose Registers (GPR). Among the values (PSR) set inthe Player Setting/Status Registers, PSR4 to PSR8 are used to representthe current playback point.

The PID conversion unit 24 converts stream numbers stored in the PSR set23 into PID reference values based on the STN_table, and notifies thePID reference values of the conversion results to the PID filters 3 band 3 d.

The network unit 25 achieves a communication function of the playbackapparatus. When a URL is specified, the communication unit 25establishes a TCP connection or an FTP connection with a web site of thespecified URL. The establishment of such a connection allows fordownloading from web sites.

The operation receiving unit 26 receives specification of an operationmade by a user on the remote controller, and notifies User Operationinformation, which indicates the operation specified by the user, to thecontroller 22. With the User Operation information, a number of a stream(number x) which the user desires to select is specified.

Thus concludes the description of the internal structure of the playbackapparatus. Next is described the internal structure of the output stageof the playback apparatus. FIG. 23 shows a structure of the output stageof the playback apparatus. As shown in the figure, the output stage ofthe playback apparatus is composed of: a 1-α3 multiplication unit 15 a;a scaling and positioning unit 15 b; an α3 multiplication unit 15 c; anaddition unit 15 d; a 1-α1 multiplication unit 15 e; an α1multiplication unit 15 f; an addition unit 15 g; a 1-α2 multiplicationunit 15 h; an α2 multiplication unit 15 i; an addition unit 15 j and anHDMI transmitting and receiving unit 16.

The 1-α3 multiplication unit 15 a multiplies the luminance of pixelsconstituting a noncompressed digital picture stored in the video decoder4 g by a transmittance of 1-α3.

The scaling and positioning unit 15 b enlarges or minimizes (i.e.scaling) a noncompressed digital picture stored in the video plane 5 g,and changes the position (i.e. positioning). The enlargement andminimization are based on PiP_scale of the metadata and the change ofthe position is based on PiP_horizontal_position andPiP_vertical_position.

The α3 multiplication unit 15 c multiplies, by a transmittance of α3,the luminance of pixels constituting the noncompressed picture on whichscaling and positioning have been performed by the scaling andpositioning unit 15 b.

The multiplication unit 15 d combines the noncompressed digital picturecreated by the α3 multiplication unit 15 c multiplying the luminance ofeach pixel by a transmittance of α3 and the noncompressed digitalpicture created by the 1-α3 multiplication unit 15 a multiplying theluminance of each pixel by a transmittance of 1-α3, to thereby obtain acomposite picture.

The 1-α1 multiplication unit 15 e multiplies, by a transmittance of1-α1, the luminance of pixels constituting the composite digital picturecreated by the multiplication unit 15 d.

The α1 multiplication unit 15 f multiplies, by a transmittance of α1,the luminance of pixels constituting a compressed graphic stored in thepresentation graphics decoder 13 c.

The multiplication unit 15 g combines the noncompressed digital picturecreated by the 1-α1 multiplication unit 15 e multiplying the luminanceof each pixel by a transmittance of 1-α1 and the noncompressed graphiccreated by the α1 multiplication unit 15 f multiplying the luminance ofeach pixel by a transmittance of α1, to thereby obtain a compositepicture.

The 1-α2 multiplication unit 15 h multiplies, by a transmittance of1-α2, the luminance of pixels constituting the digital picture createdby the multiplication unit 15 g.

The α2 multiplication unit 15 i multiplies, by a transmittance of α2,the luminance of pixels constituting a noncompressed graphic stored inthe interactive graphics decoder 1 c.

The multiplication unit 15 j combines the noncompressed digital picturecreated by the 1-α2 multiplication unit 15 h multiplying the luminanceof each pixel by a transmittance of 1-α2 and the noncompressed graphiccreated by the α2 multiplication unit 15 i multiplying the luminance ofeach pixel by a transmittance of α2, to thereby obtain a compositepicture.

The HDMI transmitting and receiving unit 16 receives, from anotherapparatus connected via an HDMI (High Definition Multimedia Interface),information regarding the apparatus, and transmits, to the apparatusconnected via the HDMI, digital noncompressed video obtained by thecomposition of the multiplication unit 15 j together with audio datacombined by the mixer 9 a.

Thus concludes the description of the hardware structure of the playbackapparatus of the present embodiment. Next is described the softwarestructure of the playback apparatus of the present embodiment.

The controller 22 shown in FIG. 22 is functionally depicted in FIG. 24.FIG. 24 functionally depicts the controller 22, and as shown in thefigure, the controller 22 is composed of: a play list process unit 41; aprocedure execution unit 42; PiP control unit 43 and a mixing controlunit 44.

These components perform the processes based on the PSR set 23. Thefollowing explains PSR1, PSR14, and PSR31. The word length of a PSR is32 bits. The bit locations of respective bit data constituting one wordof the PSR (32 bits) are referred to as b0 to b31. Here, the mostsignificant bit of the PSR is called b31 while the least significant bitis called b0.

<PSR14>

FIG. 25A shows bit assignment in PSR14.

As shown in the figure, b8 to b15 among 32 bits of PSR14 represents astream number of a secondary video stream, and identifies one of aplurality of secondary video streams whose entries are written in theSTN_table of the current Play Item. When the value set in PSR14 changes,the playback apparatus plays a secondary video stream corresponding tothe set value after the change. The stream number of the secondary videostream of PSR14 is set to the initial value, “0xFF”, and then may be setto a value ranging from “1” to “32” by the playback apparatus. The value“0xFF” is an unspecified value and indicates that there is no secondaryvideo stream or that a secondary video stream has not been selected.When PSR14 is set to a value ranging from “1” to “32”, the set value isinterpreted as a stream number of a secondary video stream.

The b31 of PSR14 is disp_v_flag, and indicates whether or not theplayback apparatus is capable of playing a secondary video (1b:Presentation of Secondary Video is enabled; 0b: Presentation ofSecondary Video is disabled). Here, HDTV means a video with a resolutionof 1920×1080, or a video with a resolution of 1280×720, and the bit ofb31 shows whether the playback apparatus is capable of decoding thevideo and outputting the decoded video.

<PSR29>

FIG. 25B shows bit assignment in PSR29.

The b0 of PSR29 is HD_Secondary_video_Capability, and indicates whetherthe playback apparatus is capable of playing a 50 & 25 Hz video, i.e. aPAL-format video stream in 50 frame/sec mode or a PAL-format videostream in 25 frame/sec mode (1b: HD Secondary Video is capable) orwhether the playback apparatus is capable of playing a HDTV secondaryvideo (0b: HD Secondary Video is incapable).

The b1 of PSR29 is 50&25 Hz video Capability, and indicates whether ornot the playback apparatus is capable of playing a 50 & 25 Hz video,i.e. a PAL-format video stream (1b: 50 & 25 Hz Video is capable; 0b: 50& 25 Hz Video is incapable).

Thus concludes the description of the PSR set 23.

From now on, the PlayList processing unit 41, the Procedure executingunit 42, and the Procedure executing unit 43 will be described.

Since the PiP control unit 43 has various processing, the description isgiven in Embodiment 2. The mixing control unit 44 has little connectionwith the main focus of the present embodiment, and the explanation istherefore given in Embodiment 4.

<Details of Functional Structure 1: PlayList Processing Unit>

The PlayList processing unit 41 achieves the PL playback. The PlayListprocessing unit 41 plays a portion of the primary video stream thatcorresponds to a section from In_time to Out_time of the PlayIteminformation. In synchronization with this, the PlayList processing unit41 causes the video decoder 5 b to play a portion of a secondary videostream that corresponds to a section from Sub_PlayItem_In_time toSub_PlayItem_Out_time of the SubPlayItem information.

<Details of Functional Structure 2: Procedure Executing Unit 42>

When necessity for changing a piece of PlayItem information to anotherarises, or when the user performed to change the stream number, theprocedure executing unit 42 executes a predetermined stream selectionprocedure, and writes a stream number of a new secondary video streaminto PSR14. The playback apparatus plays a secondary video streamaccording to the stream number written in PSR14. The setting of PSR14thus enables a secondary video stream to be selected.

The reason why the stream selection procedure is executed when thePlayItem information is changed is as follows. Since the STN_Table isprovided with respect to each piece of PlayItem information, it mayhappen that a secondary video stream, which is playable according to apiece of PlayItem information, cannot be played according to anotherpiece of PlayItem information.

The procedure executing unit 42 brings PSR1 to change in status as shownin FIG. 26. FIG. 26 shows the status transition of the secondary videostream numbers in the PSR14. In the figure, the term “valid” means thatthe value of the PSR14 is equal to or less than the number of entrieswritten in the STN_table of the Play Item, and is decodable.

The term “Invalid” means that (a) the secondary video stream number ofthe PSR14 is “0”, (b) the secondary video stream number of the PSR14 ismore than the number of entries written in the STN_table of the PlayItem, or (c) decoding is not available even if the number of entrieswritten in the STN_table of the Play Item is in the range from “1” to“32”.

The frames drawn with dotted lines in FIG. 26 schematically indicateprocedures for determining the value of PSR when the status changes. Theprocedures for setting a secondary video stream number to the PSR14include “Procedure when playback condition is changed” and “Procedurewhen Stream change is requested”.

The “Procedure when playback condition is changed” is a procedure to beexecuted when the status of the playback apparatus has changed due tosome event that took place in the playback apparatus.

The “Procedure when Stream change is requested” is a procedure to beexecuted when the user requests to change a stream.

The “Procedure when playback condition is changed” and “Procedure whenStream change is requested” are stream selection procedures and aredescribed hereinafter in detail with reference to flowcharts.

The arrows in FIG. 26 symbolically indicate the status transition of thesecondary video stream number set in PSR14.

The notes attached to the arrows indicate events that trigger eachstatus transition. That is to say, FIG. 26 indicates that a statustransition of the secondary video stream number in PSR14 takes place ifan event such as “Load Disk”, “Change a Stream”, “Start PlayListplayback”, “Cross a PlayItem boundary”, or “Terminate PlayList playback”occurs. By referring to FIG. 26, it can be seen that the above-mentionedprocedures are not performed when a status transition of“Invalid→Invalid” or “Valid→Invalid” occurs. On the other hand, statustransitions of “Invalid→Valid” and “Valid→Valid” go through thedotted-line frames. That is to say, the above-mentioned “Procedure whenplayback condition is changed” or “Procedure when Stream change isrequested” is performed when the secondary video stream number in PSR14is set to be “Valid”.

The following describes the events that trigger the status transition.

The event “Load Disk” indicates that the BD-ROM has been loaded in theplayback apparatus. In such loading, the secondary video stream numberin PSR14 is once set to an unspecified value (0xFF).

The event “Start PlayList playback” indicates that a playback processbased on PlayList has been started. When such an event occurs, the“Procedure when playback condition is changed” is executed, and thesecondary video stream number in PSR14 is set to be “Valid”.

The event “Terminate PlayList playback” indicates that a playbackprocess based on PlayList has been terminated. It is understood thatwhen such an event occurs, the “Procedure when playback condition ischanged” is not executed, and the secondary video stream number in PSR14is set to be “Invalid”.

The event “Change a Stream” indicates that the user requested to changethe stream. If this event occurs when the secondary video stream numberin PSR14 is “Invalid” (indicated by “cj1” in FIG. 26), PSR14 is set to avalue as requested. Even if the value that is set in this way indicatesa valid stream number, the value set in PSR14 is treated as an “Invalid”value. That is, in the status transition triggered by the event “ChangeXa Stream”, PSR never changes from Invalid to Valid.

On the other hand, if event “Change a Stream” occurs when the secondaryvideo stream number in PSR14 is “Valid” (indicated by “cj2” in FIG. 26),the “Procedure when Stream change is requested” is executed, and PSR14is set to a new value. Here, the value set when the “Procedure whenStream change is requested” is executed may not be a value desired bythe user. This is because the “Procedure when Stream change isrequested” has a function to exclude an invalid value. If the event“Change stream” occurs when PSR14 is “Valid”, PSR14 never changes fromValid to Invalid. This is because the “Procedure when Stream change isrequested” assures that PSR1 does not become “Invalid”.

The event “Cross a PlayItem boundary” indicates that a Play Itemboundary has been passed. Here, the Play Item boundary is a boundarybetween two successive Play Items, namely a position between the end ofa preceding Play Item and the start of a succeeding Play Item, betweenthe two successive Play Items. If the event “Cross a PlayItem boundary”occurs when the secondary video stream number in PSR14 is “Valid”, the“Procedure when playback condition is changed” is executed. After theexecution of the “Procedure when playback condition is changed”, thestatus of PSR14 either returns to “Valid” or transits to “Invalid”.Since the STN_table is provided in correspondence with each Play Item,if a Play Item changes, a playable elementary stream also changes. Thestatus transition is aimed to set PSR14 to a most appropriate value foreach Play Item by executing the “Procedure when playback condition ischanged” each time a Play Item starts to be played.

FIG. 27 is a flowchart showing a processing procedure of “Procedure whenplayback condition is changed” for secondary video streams.

In Step S51, it is checked whether a secondary video stream having thestream number set in PSR14 satisfies the following conditions (A) and(B):

Condition (A): based on a comparison of the video format and frame_ratewith the HD Secondary Video Capability or the 50 & 25 Hz VideoCapability, the playback apparatus is capable of playing a secondaryvideo stream specified by the number stored in PSR14; and

Condition (B): the SubPath_Type of the secondary video stream is “6(i.e. asynchronous Picture in Picture)”.

The “HD Secondary Video Capability” means capability of decoding an HDTVvideo stream and outputting this for playback while the “50 & 25 HzVideo Capability” means capability of decoding a 50 frame/sec or a 25frame/sec picture sequence and outputting this for playback. Inaddition, the video format and frame_rate are written, within theSTN_table, in the stream_attribute of the secondary video stream.Whether the HD Secondary Video Capability and the 50 & 25 Hz VideoCapability are present is shown in b0 and b1 of PSR 29. Checking thesesettings in the STN_table against the value of b1 in PSR29 allows fordetermining whether the condition (A) is satisfied.

After the execution of Step S51, Steps S52 and S53 are executed.

Step S52 is a judgment step for judging whether the number ofStream_entries of the secondary video streams for the current PlayItemin the STN_table is 0. Here, the number of Stream_entries of thesecondary video streams in the STN_table being 0 means that there is noplayback-permitted secondary video stream. When the number is 0, thesecondary video stream number in PSR 14 is maintained (Step S53). Thisis because, as long as there is no secondary video stream that has beenpermitted to be played in the current PlayItem, the current value of PSR14 should be retained.

Step S54 is a judgment step that is executed when the number ofStream_entries of the secondary video streams in the STN_table is judgedto be not 0 in Step S53. In Step S54, the following are judged: whetherthe number x stored in PSR14 is equal to or less than the total numberof stream_entries in the STN_table; and whether a secondary video streamhaving the number x satisfies the condition (A). If YES in Step S54, themost appropriate stream for the current PlayItem is selected byexecuting a procedure shown in the flowchart of FIG. 28 to behereinafter described (Step S55).

If NO in Step S54, the judgment step of Step S56 is executed. Thisjudgment step is for judging whether the secondary video stream havingthe number x satisfies the condition (B). When the condition (B) issatisfied, PSR14 is set to 0xFE in Step S58. The value 0xFE indicatesthat a secondary video stream has not been selected although thesecondary video stream number in PSR14 is Valid. If this value is set inPSR14 at the execution of asynchronous Picture in Picture, the“Procedure when stream change is requested” will be executed in responseto the user operation. However, if the stream number of PSR14 isInvalid, the “Procedure when stream change is requested” is not executedeven when the user operation is performed and the secondary video streamwill never be played. In order to avoid this to happen, it is designedto set 0xFE in PSR14 at the execution of asynchronous Picture inPicture.

When a valid secondary video stream number is already set in PSR14although the condition (B) is not satisfied, the number is maintained(Step S57).

Thus concludes the description of the “Procedure when playback conditionis changed” for a secondary video stream.

FIG. 28 is a flowchart showing a processing procedure for selecting themost appropriate stream for the current PlayItem.

In steps S61 to S63, the checking of whether the following conditions(a) and (b) are satisfied is performed on all stream_entries in theSTN_table.

Condition (a): based on a comparison of the video format and frame_rateof a secondary video stream with the HD Secondary Video Capability orthe 50 & 25 Hz Video Capability, the playback apparatus is capable ofplaying a secondary video stream specified by the number stored inPSR14; and

Condition (b): the SubPath_Type of the secondary video stream is “6(i.e. asynchronous Picture in Picture)”.

When these checks are completed for all playback-permitted secondaryvideo streams in the STN_table, the procedure executing unit 42 executesStep S64.

Step S64 is a judgment step for judging whether a secondary video streamsatisfying the condition (a) is absent. If YES in Step S64, 0xFFF is setin the PSR14 as the stream number of a secondary video stream (StepS65).

If at least one secondary video stream satisfying the condition (a) ispresent, Step S64 is YES and Step S66 is executed. In Step S66, ajudgment is made on whether, among the secondary video streamssatisfying the condition (a), the first secondary video stream in theorder arranged in the STN_table satisfies the condition (b). If itsatisfies the condition (b), 0xFFF is set in PSR as the stream number ofa secondary video stream in Step S67.

If the condition (b) is not satisfied, a secondary video stream whoseStream_Entry comes first in the STN_table is selected from among thesecondary video streams satisfying the condition (a), and the streamnumber of the selected secondary video stream is set in PSR14 (StepS68). Through the procedure, the most appropriate secondary video streamfor the current PlayItem is thus stored in PSR14. Thus concludes theselection procedure for selecting the most appropriate stream number.

FIG. 29 is a flowchart showing a processing procedure of the “Procedurewhen stream change is requested” for a secondary video stream.

Assume that the secondary video stream number x is specified by the useroperation made on the operation receiving unit 26. In this case, whetherthe secondary video stream of the number x satisfies the followingconditions (A) and (B) is checked in Step S71.

Condition (A): based on a comparison of the video format and frame_ratewith the HD Secondary Video Capability or the 50 & 25 Hz VideoCapability, the playback apparatus is capable of playing a secondaryvideo stream specified by the number stored in PSR14; and

Condition (B): the SubPath_Type of the secondary video stream is “6(i.e. asynchronous Picture in Picture)”.

After these checks are completed, the judgment step of Step S72 isexecuted. In Step S72, a judgment is made on whether the number ofStream_entries of the secondary video streams for the current PlayItemin the STN_table is 0. “0” in Step S72 means that no playback-permittedstream is present, and the secondary video stream number in PSR14 ismaintained (Step S73).

When not “0” in Step S72, the judgment step of Step S74 is executed. InStep S74, a judgment is made on whether the number x of the secondaryvideo stream specified by the user operation is equal to or lower thanthe total number of the stream_entries in the STN_table and whether thenumber x satisfied the condition (A). If it satisfies the condition (A),a stream specified by the number x is selected and set in PSR14 (StepS75).

When NO in Step S74, the judgment step of Step S76 is executed. Thejudgment step is for judging whether the number x is 0xFF. Here, “0xFF”of the number x is an “entrustment number” which means that theselection of the most appropriate secondary video stream for the currentPlayItem is left to the discretion of the playback apparatus. If thenumber x is not 0xFF, the secondary video stream number stored in PSR14is maintained (Step S77). If the number x is 0xFF, a loop processing ofSteps S78 to S80 is commenced. In the loop processing, the checking ofwhether the following condition is satisfied is performed on allsecondary video streams written in the stream_entries of the STN_table.

Condition (a): based on a comparison of the video format and frame_ratewith the HD Secondary Video Capability or the 50 & 25 Hz VideoCapability, the playback apparatus is capable of playing a secondaryvideo stream specified by the number stored in PSR14.

After the loop processing is executed, whether at least one secondaryvideo stream satisfying the condition (a) is present is judged in StepS81. If it is present, a secondary video stream whose Stream_Entry comesfirst in the STN_table is selected from among the secondary videostreams satisfying the condition (a), and the stream number of theselected secondary video stream is set in PSR14 (Step S82). Thusconcludes the description of the “Procedure when stream change isrequested” for the secondary video stream.

According to the present embodiment, even if unplayable secondary videostreams are present within secondary video streams recorded in theBD-ROM or the local storage, there is an option to use “for Picture inPicture, one that the playback apparatus is capable of playing” byexecuting a procedure of selecting a subsequent stream. Accordingly,even if the total sizes of secondary videos vary from each other andthere are differences among playback apparatuses in their capabilitiesof playing secondary videos, it is possible to cause the playbackapparatus to display some kind or another secondary video and to executePicture in Picture.

Embodiment 2

The present embodiment describes a specific data structure to cause theplayback apparatus to perform Picture in Picture and a processingprocedure of the playback apparatus according to the data structure. Thespecific data structure to cause the playback apparatus perform Picturein Picture is present in extension data within the internal structure ofmp1s file shown in FIGS. 11 and 16, and is called PiP_metadata. FIG. 30shows an internal structure of the PiP_metadata. The lead line hm1indicates a close-up of the internal structure of the PiP_metadata. Asshown by the lead line hm1, the PiP_metadata is composed ofnumber_of_metadata_block entries, n1 pieces of metadata_block_headers,and n2 pieces of PiP_metadata blocks.

The lead line hm2 indicates a close-up of the internal structure of themetaclata_block header. That is, the metadata_block_headers are multipleinstances generated from the same class structure, and each has the sameinternal structure as indicated by the lead line hm2. The followingdescribes each field constituting the metadata_block_header.

ref_to_PlayItem_id[k]:

This is a field for indicating a PlayItem_id of PlayItem[k] to be atarget of Picture in Picture. The STN_table of the PlayItem indicated bythe ref_to_PlayItem_id[k] must store therein a reference value of theref_to_secondary_video_stream_id[k] (secondary_video_stream_id). Inaddition, the ref_to_PlayItem_ids in the pip_metadata( ) has to berearranged in ascending order of the reference values. This is for, whenthe current PlayItem changes, promptly finding a metadata_block_headerhaving the ref_to_PlayItem_id that specifies a PlayItem after thechange.

ref_to_secondary_video_stream_id[k]:

This is a field for showing, from among secondary_video_stream_idsdefined in the STN_table of the PlayItem referred to by theref_to_PlayItem_id[k], one indicating a secondary video stream used forthe playback of Picture in Picture. This field is used for identifying asecondary video stream which uses associated PiP_metadata_block[k]( ).To be more specific, an associated stream_entry( ) in the STN_table canbe derived by referring the secondary_video_stream_id, and a SubPathcorresponding to a secondary video stream which is used byPiP_metadata_block[k]( ) by referring to the stream_entry.

Note here that two or more pairs whose values of theref_to_PlayItem_id[k] and the ref_to_secondary_video_stream_id[k] arethe same must not be present in the pip_metadata( )

pip_timeline_type[k]:

This indicates that a mapping point of the Sync_Start_PTS_of_PlayItem onthe PlayItem time axis should be used as reference timing for executingPicture in Picture or as the position of SubPlayItem_In_time.

When Pip_time_line_type=1, the pip_metadata_time_stamp uses the PlayItemtime axis referred to by the ref_to_PlayItem_id[k] as the basis in theexecution of synchronous Picture in Picture. In this case, theSubPath_type of the SubPath specified by theref_to_secondary_video_stream_id[k] must be set to 5 or 7.

When Pip_time_line_type=2, the pip_metadata_time_stamp uses the SubPathtime axis as the basis in the execution of asynchronous Picture inPicture. In this case, the SubPath_type of the SubPath specified by theref_to_secondary_video_stream_id[k] must be set to 6.

When Pip_time_line_type=3, the pip_metadata_time_stamp uses the PlayItemtime line referred to by the ref_to_PlayItem_id[k] as the basis in theexecution of asynchronous Picture in Picture. In this case, theSubPath_type of the SubPath specified by theref_to_secondary_video_stream_id[k] must be set to 6.

Thus, preferred Picture in Picture playback can be realized by ideallyusing either one of the Playhem side or the SubPlayItem side as thebasis.

is_luma_key:

When this flag is 1, luma-keying is applied for a correspondingsecondary video stream according to upper_limit_luma_key. Theluma-keying is a process of, when each picture constituting thesecondary video includes a subject and a background, extracting thesubject from the picture and providing this for the composition with theprimary video. When the luma-keying is applied for the secondary video,the α3 of the α3 multiplication unit 15 c, shown in Embodiment 1, is setto 0 or 1. When the luma-keying is not applied, the α3 is set to 1.

trick_playing_flag:

This is a flag showing an intention of the content provider on whetherthe window for Picture in Picture is left open or closed during trickplayback of the primary video. This flag becomes valid only for thesynchronous Picture in Picture. By setting the flag to 0, the contentprovider shows the intention of making the window for Picture in Picture(PiP window) closed during trick playback of the primary video. Here,the trick playback is defined by playback apparatus manufacturers withrespect to each playback apparatus. For example, in some playbackapparatuses, 1.2× Forward Play may be defined as not being trickplayback while 2× Forward Play or more being defined as trick playback.

upper_limit_luma_key:

This is a field for specifying the upper limit of the luminance (Y) of acorresponding secondary video for the luma-keying. When the Primaryvideo plane and Secondary video plane are placed on top of one another,perfect transmission is realized, in the composition of Picture inPicture, for pixels whose values of luminance (Y) are 0 or more but nomore than the upper_limit_lama_key value on the Secondary video plane.For example, when a secondary video is composed of a figure of a personand a background and only the person's figure is desired to be used as atarget of the composition, a luminance value is set in theupper_limit_luma_key so that, from among the pixels constituting thesecondary video, pixels having the luminance value or lower are regardedas the background.

Next is described an internal structure of the PiP_metadata_block. Thelead line hm2 indicates a close-up of the structure of PiP_metadatablock. As indicated by the lead line, the PiP_metadata_block[1] iscomposed of k pieces of PiP_metadata_entries[1] to [k] andnumber_of_pipmetadata_entries.

The lead line hm3 indicates a close-up of an internal structure of aPiP_metadata_entry. That is, the PiP_metadata_entries are multipleinstances generated from the same class structure, and each has the sameinternal structure and is composed of pip_metadata_time_stamp[i] andpip_composition_metadata( ).

pip_metadata_time_stamp[i]:

This is a field for indicating a start point of the time interval duringwhich the pip_composition_metadata( ) is valid.

Except for the last pip_composition_metadata0, the i-thpip_composition_metadata( ) in the k-th PiP_metadata_block[k] becomesvalid during the time interval no less than pip_metadata_time_stamp[i]but no more than pip_metadata_time_stamp[i+1]. The lastpip_composition_metadata( ) of the last pip_metadata_time_stamp in thePiP_metadata_block[k]( ) becomes valid during the time interval no lessthan the last pip_metadata_time_stamp but no more than display end timeof a SubPath specified by the ref_to_secondary_video_stream_id[k]. Inaddition, the minimal time interval between two adjacentpip_metadata_time_stamps is one second inclusive.

The pip_composition_metadata( ) is composed of the following fields.

pip_horizontal_position[i]:

This field indicates a horizontal position of a pixel of the left uppercorner of the secondary video on the primary video plane. Whenvideo_width represents the horizontal width of the video plane, ahorizontal position specified by the PiP_horizontal_position ranges from0 to video_width-1.

pip_vertical_postion[i]:

This field indicates a vertical position of a pixel of the left uppercorner of the secondary video on the primary video plane. When videoheight represents the vertical width of the video plane, a verticalposition specified by the PiP_vertical_position ranges from 0 to videoheight-1. FIG. 31 shows coordinates that the PiP_horizontal_position andPiP_vertical_position possibly take on the video plane. This figureshows a coordinate system in which the left uppermost of the image isthe origin, and the positive directions of the x axis and y axis arerightward and downward in the image, respectively. In this coordinatesystem, the PiP_horizontal_position represents an x coordinate while thePiP_vertical_position represents a y coordinate.

pip_scale[i]:

This is a field for indicating a scaling type of the secondary video.Scaling types are as follows:

0: Preset

1: no scaling (×1)

2: ½ scaling (×½)

3: ¼ scaling (×¼)

4: 1.5× scaling (×1.5)

5: full screen scaling

The following describes the relationship between the pip_timeline_typeand the pip_metadata_time_stamp.

pip_timeline_type[k]=1

In this case, Picture in Picture becomes valid for a time lengthstarting from the mapping point of SubPlayItem_In_Time on a PlayItemtime axis referred to by the ref_to_PlayItem_id[k] and corresponding tothe time length of the SubPlayItem. In this case, thePiP_metadata_time_stamp represents, with a time accuracy of 45 KHz, anyone of time points in the valid time period of Picture in Picture. Here,the pip_metadata_time_stamp[0] is positioned to the mapping pointobtained by mapping the SubPlayItem_In_Time on the time line of thePlayItem referred to by the ref_to_PlayItem_id[k].

FIG. 32 shows how the PiP_metdata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=1. In the figure, Level 3 shows theSubPlayItem time axis and Level 2 shows the PlayItem time axis. Level 1shows multiple pictures constituting the primary video.

Assume here that the secondary video is a shopping video and offerssales of clothing which an actress appearing in the main movie wears.Here, the left side of the screen is blank at time point t1 on thePlayItem time axis, and the right side of the screen is blank at timepoint t2. In this case, PiP_metadata_time_stamp[i] is set for t1, andthe PiP_horizontal_position[i] and PiP_vertical_position[i] are set forthe left side of the screen. In addition, thePiP_metadata_time_stamp[i+1] is set for t2, and thePiP_horizontal_position[i+1] and PiP_vertical_position[i+1] for theright side of the screen.

Herewith, the shopping video will be displayed in the blanks at the timepoints t1 and t2. When PiP_time_line_type=1, the secondary video can bepositioned in accordance with the picture of the main movie bydisplaying the secondary video at which it would not interrupt the viewof the main movie.

pip_timeline_type[k]=2

FIG. 33 shows how the PiP_metadata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=2. Levels 1, 2 and 3 in the figure arethe same as those in FIG. 32.

Picture in Picture becomes valid for a time length starting from theSubPlayItem_In_Time on the SubPath time axis of Level 3 in the figureand corresponding to the time length of the SubPlayItem. ThePiP_metadata_time_stamp represents, with a time accuracy of 45KHz, anyone of time points in the valid time period of Picture in Picture. Here,the pip_metadata_time_stamp[0] is positioned at a time point specifiedby the In_Time on the SubPlayItem time axis.

The reason why the PiP_metadata_time_stamp[0] is positioned on theSubpath time axis is to define a movement trajectory when a thing drawnin the secondary video is a moving object which is desired to be movedfrom left to right side of the screen. This is because such a movementtrajectory can be defined independently of the picture of the mainmovie. Accordingly, the PiP_metadata_time_stamp[0] is positioned on theplayback axis of the Subpath information.

Assume that, in FIG. 33, the PiP_metadata_time_stamp[i] indicates t1 onthe SubPlayItem time axis and the PiP_horizontal_position[i] andPiP_vertical_position[i] indicate a left upper part of the screen. Inaddition, the PiP_metadata_time_stamp[i+1] indicates t2 on theSubPlayItem time axis and the PiP_horizontal_position[i+1] andPiP_vertical_position[i+1] indicate a right lower part of the screen.

In this case, the secondary video is displayed at the left upper part ofthe screen at a time on the SubPlayItem time axis indicated by thePiP_metadata_time_stamp[i]. The secondary video is then displayed at theright lower part at a time on the SubPlayItem time axis indicated by thePiP_metadata_time_stamp[i+1]. Here, in the case whereSync_Start_PTS_of_PlayItem is 0xFFF, the Sync_Start_PTS_of_PlayItem isinterpreted as a point when the user performed the lock operation.Therefore, if the user performs the lock operation, secondary videoswill be sequentially displayed. Herewith, a screen effect can berealized in which an object drawn in the secondary video (the shootingstar in the figure) moves around in the primary video in response to theuser's operation.

pip_timeline_type[k]=3

Picture in Picture becomes valid in a time period starting at thePlayItem_In_Time and ending at the PlayItem_OutTime on a PlayItem timeaxis referred to by the ref_to PlayItem_id[k]. ThePiP_metadata_time_stamp represents, with a time accuracy of 45 KHz, anyone of time points in the execution time period of Picture in Picture.Here, the pip_metadata_time_stamp[0] is positioned at thePlayItem_In_Time referred to by the ref_to_PlayItem_id[k].

FIG. 34 shows how the PiP_metadata_time_stamp is positioned on the timeaxis when the PiP_time_line_type=3. Each Level in the figure is the sameas that in FIG. 32. In addition, the blank locations in the primaryvideo are the same as those in FIG. 32. When the pip_timeline_type[k]=3,the PiP_metadata_time_stamp[0] is positioned at a time point indicatedby the origin of the PlayItem time axis, i.e. a time point indicated byIn_Time. Therefore, it is possible to realize the same screen effect asFIG. 32 by representing t1 using a coordinate based on the origin of theMayhem time axis and setting the t1 for the PiP_metadata_time_stamp[i]while representing t2 using a coordinate based on the origin of thePlayItem time axis and setting the t2 for thePiP_metadata_time_stamp[i]. If the PiP_time_line_type is set to 3, thetime period in which Picture in Picture should be executed can bedefined by a coordinate based on the origin of the PlayItem time axis.

Thus concludes the improvement of the recording medium of the presentembodiment. Next is described an improvement in the playback apparatusof the present embodiment. The improvement in the playback apparatus ofthe present embodiment is that the PiP control unit 43 performs playbackcontrol based on the metadata_block_header and PiP_metadata_block. FIGS.35 and 36 are flowcharts showing a playback control procedure based onPicture in Picture. The following describes the playback control withreference to the flowcharts.

Step S91 forms an event-wait loop that waits for the execution of aselection procedure. When the procedure is executed, Step S91 is YES andprocessing from Step S92 onward will be executed. In Step S92, it isjudged whether there is a meta_block_header that specifies currentPlayItem as ref_to_PlayItem_id and specifies PID corresponding to thesecondary video stream number in psr14 asRef_to_secondary_video_stream_id.

If being present, the meta_block_header is set as the currentmetadata_block_header (Step S93). Steps S94 to S96 are provided forselectively executing Steps S97, S98 and S99 according to the value ofPiP_time_line_type of the metadata_block_header. When PiP_time_line_typeof the metadata_block_header is 1, Step S94 is YES and thePiP_metadata_block.PiP_metadata_time_stamp[0] is positioned at themapping point of the Sync_Start_PTS_of_PlayItem on the PlayList playbacktime axis (Step S97).

When PiP_time_line_type of the metadata_block_header is 2, Step S95 isYES and the PiP_metadata_block.PiP_metadata_time_stamp[0] is positionedat the SubPlayItem.In_Time on the SubPlayItem time axis (Step S98).

When PiP_time_line_type of the metadata_block_header is 3, Step S96 isYES and the PiP_metadata_block.PiP_metadata_time_stamp[0] is positionedat the PlayItem.In_Time (Step S99).

In Step S100, the PiP_metadata_time_stamps[0][1] . . . [n] are convertedinto coordinates on the STC time axis based on the position of thePiP_metadata_time_stamp[0]. Subsequently, a loop processing of StepsS101 to S105 is commenced. The counter variable in the loop processingis variable i and it is initialized to “0” in Step S101. The countervariable is incremented by 1 in Step S105 every time Steps S103 and S104are performed.

Step S103 is for judging whether the current playback time point(current Presentation TiMe (PTM)) has reached thePiP_metadata_block.PiP_metadata_time_stamp[i]. When the current PTMreaches it, the α3 multiplication unit 15 c and addition unit 15 d areinstructed to display the secondary video indicated by themetadata_block_header.Ref_to_secondary_video_stream_id at coordinatesindicated by (PiP_horizontal_position and PiP_vertical_position) in thesize indicated by the PiP_scale[i] (Step S104).

Here, if the is_luma_key: of the metadata_block_header is set to 1, theα3 multiplication unit 15 c and addition unit 15 d are instructed tomake the pixels whose values of luminance (Y) are 0 or more but no morethan the upper_limit_luma_key value to have perfect transmission in thecomposition of Picture in Picture. Herewith, only the person's figurecan be extracted from the secondary video and the extracted figure canbe combined with the primary video.

A requirement to end the loop processing is to obtain i=numberof_pip_metadata entries−1 in Step S102. Until the requirement issatisfied, the processing of Steps S103 to S105 will be repeated.

When trick playback is to be started in the middle of PlayListinformation and the currently executed Picture in Picture is synchronousPiP, the intention of the content provider is checked on whether thewindow for pip is left open or closed during trick playback of theprimary video. When the flag is 0, the content provider intends to closethe PiP window and therefore the window is closed. When the flag is 1,the content provider intends to leave the PiP window open and the windowis left open.

Thus, according to the present embodiment, which one of the MainPathtime axis and the Subpath time axis is used as the reference forstarting Picture in Picture is decided based on the PiP_time_line_type.It is therefore possible to reflect, on the operations of the playbackapparatus, the intentions of the authoring developers regarding whetherthe position of the secondary video is decided in accordance with thepicture of the primary video or the secondary video is moved in responseto the user's operation.

Embodiment 3

The present embodiment relates to an improvement in which multiplesecondary video streams are associated one-to-one with SubPlayItems andone Picture in Picture playback path is defined from the SubPlayItems.

In this case, the length of the playback section for one SubPlayItem maybe shorter than that for a corresponding PlayItem. However, consecutiveSubPlayItems in the SubPath cannot temporally overlap. Even ifboundaries exist between PlayItems, the SubPlayItems cannot overlap. Onthe other hand, consecutive SubPlayItems in the SubPath are allowed tohave time gaps therebetween. Such a time gap is three seconds or more.

FIG. 37 shows a relationship between a MainPath composed of one PlayItemand a Subpath composed of two SubPlayItems. Level 1 shows multiple VideoPresentation Units constituting the primary video stream. Level 2 showsgroups each composed of a sync_PlayItem_id and async_start_PTS_of_PlayItem. Level 3 shows a SubClip time axis and Level4 shows In_Times and Out_Times of SubPlayItems. Level 5 shows multipleVideo Presentation Units constituting the secondary video streams.

The groups of sync_PlayItem_id and sync_start_PTS_of_PlayItem in Level 2specify times at which SubPlayItem_IN_times take synchronization on theMainPath time axis.

The Video Presentation Units vp1 and vp2 of the secondary videoindicated by the SubPlayItem_IN_times in Level 5 and the VideoPresentation Units vp3 and vp4 of the primary video indicated by thesync_start_PTS_of_PlayItems are respectively located on the same timepoints on the Main Path time axis.

Two SubPlayItem (SubPlayItems #1 and #2) are defined on the Subpath timeaxis in Level 3. Here, a time gap (time gap in the figure) may exist onthe Subpath time axis, between the Out_Time of the SubPlayItem#1 and theIn_Time of the SubPlayItem#2. If consecutive SubPlayItems in a SubPathare connected without a time gap, the connection condition of theSubPlayItems must be represented by a sp_connection_condition.

In FIG. 37, a three-second time gap is provided between two or moreconsecutive SubPlayItems as shown in Level 3, and therefore excess loadfor controlling the secondary video decoder will not be exerted on thecontroller 22. Such consideration has been given to the Subpath timeaxis, it is possible to realize the process of performing playback ofSubClips based on two consecutive SubPlayItems without increasing theoperation clock of the playback apparatus.

Thus concludes the improvement in the recording medium of the presentembodiment Next is described an improvement in the playback apparatus ofthe present embodiment.

The improvement in the playback apparatus of the present embodiment isthat the PlayList processing unit 41 executes the processing procedureof the flowcharts shown in FIGS. 38, 39 and 40.

FIG. 38 is a flowchart showing a playback procedure based on PlayListinformation. The flowchart shows a loop structure in which a .mp1s filestructuring the PlayList information is read in (Step S11), a PlayItemat the beginning of the PlayList information is set as the currentPlayItem (Step S12), and Steps S13 to S25 are repeated for the currentPlayItem. This loop structure has Step S23 as an ending condition. ThePlayList processing unit 41 instructs the BD-ROM drive to read AccessUnits corresponding to In_Time to Out_Time of the current PlayItem (StepS13), judges whether a previous PlayItem is present in the currentPlayItem (Step S14), and selectively executes processing of Step S15 orSteps S16 to S21 according to the judgment result. To be more specific,if the current PlayItem does not have a previousPlayItem (Step S14: NO),the PlayList processing unit 41 instructs the decoder perform playbackof the PlayItem_In_Time to the PlayItem_Out_Time (Step S15).

If the current PlayItem has the previousPlayItem (Step S14: YES), thePlayList processing unit 41 judges whether the value in the ConnectionCondition field of the current PlayItem is 5 (cc=5) (Step S16). Whencc=5 (Step S16: YES), the PlayList processing unit 41 carries out theprocessing of Steps S17 to S20.

When the previousPlayItem above is present, an ATC_Sequence in theMainClip is switched. For the switch of the ATC_Sequence, the PlayListprocessing unit 41 calculates an offset value for the MainClip, calledATC_delta1 (Step S17), and obtains an ATC value (ATC2) for a newATC_Sequence by adding the ATC_delta1 to an ATC value (ATC1) of theoriginal ATC_Sequence (Step S18).

In addition, when the previousPlayItem above is present, a STC_Sequencein the MainClip is switched. For the switch of the STC_Sequence, thePlayList processing unit 41 calculates an offset value called STC_delta1(Step S19), and obtains a STC value (STC2) of a new STC_Sequence byadding the STC_delta1 to a STC value of the original STC_Sequence (StepS20).

After the PlayList processing unit 41 instructs the audio decoder 9 tomute the Audio Overlap, and instructs the decoder to perform playback ofthe PlayItem_In_Time to the Playftem_Out_Time (Step S21). When thecurrent PlayItem is not cc=5, the PlayList processing unit 41 performsthe processing of cc=1 and cc=6.

After either one of the processing of Step S15 and the processing ofSteps S16 to S21 is carried out, the PlayList processing unit 41executes Steps S22 and S23.

In Step S22, the PlayList processing unit 41 judges whether there is aSubPlayItem that synchronizes the current PlayItem and the currentplayback time point (current PTM (Presentation TiMe)) has reached aboundary between the SubPlayItem and the next SubPlayItem. If Step S22is YES, the PlayList processing unit 41 executes Step S30 of theflowchart in FIG. 39.

In Step S23, the PlayList processing unit 41 judges whether the currentPTM on the AVClip time axis has reached the Out_Time of the currentPlayItem.

If Step S23 is YES, the PlayList processing unit 41 moves to Step S24.In Step S24, the PlayList processing unit 41 judges whether the currentPlayItem is the last PlayItem of the PlayList information. If it is notthe last PlayItem, the PlayList processing unit 41 causes the nextPlayItem of the PlayList information to be the current PlayItem (StepS25), and moves to Step S13 via Step S26. According to theabove-mentioned processing, the processes of Steps S13 to S24 areperformed on all the PlayItems of the PlayList information.

FIG. 39 is a flowchart showing a processing procedure of a seamlessconnection of SubPlayItems.

When a new secondary video stream is selected in accordance with theswitch of PlayItems in Step S26, the PlayList processing unit 41 selectsa SubPlayItem corresponding to the new secondary video stream in StepS30.

Subsequently, in Step S31, the PlayList processing unit 41 sets theSubPlayItem selected in Step S30 as the current SubPlayItem.

Then, the PlayList processing unit 41 performs the processing of StepsS32 to S41 on the current SubPlayItem. First, the PlayList processingunit 41 instructs the local storage 200 to read Access Unitscorresponding to the In_Time to the Out_Time of the SubPlayItem (StepS32). The PlayList processing unit 41 then judges whether the currentPlayItem has a Previous SubPlayItem (Step S33), and selectively performsthe processing of Steps S34 and S35 or the processing of Steps S36 toS41 based on the judgment result. To be more specific, if the currentPlayItem does not have a Previous SubPlayItem (Step S33: NO), thePlayList processing unit 41 waits until the current PTM has reached theSync_Start_Pts_of_PlayItem (Step S34). When it has reached theSync_Start_Pts_of_PlayItem, the PlayLIst processing unit 41 instructsthe decoder to perform playback of the SubPlayItem_In_Time to theSubPlayItem_OUt_Time (Step S35).

If the current PlayItem has a Previous SubPlayItem (Step S33: YES), thePlayList processing unit 41 judges whether the current PlayItem isSP_CC=5 (Step S36). When SP_CC=5 (Step S36: YES), the PlayListprocessing unit 41 performs Steps S37 to S41.

When the current PlayItem has a Previous SubPlayItem, the ATC_Sequenceis switched. For the switch of the ATC_Sequence, the PlayList processingunit 41 calculates an offset value for the SubClip, called ATC_delta2(Step S37), and obtains an ATC value (ATC2) for a new ATC_Sequence byadding the ATC_delta 1 to an ATC value (ATC1) of the originalATC_Sequence (Step S38).

The ATC_delta means an offset value representing an offset from theinput time point T1 of the last TS packet of a transport stream (TS1)that has been originally read out to the input time point T2 of the lastTS packet of a transport stream (TS2) that has been newly read out. TheATC_delta satisfies “ATC_delta≧N1/TS_recording_rate”, where N1 is thecount of TS packets following the last video PES packet of the TS1.

In addition, when the previousPlayItem above is present, a STC_Sequenceis switched. For the switch of the STC_Sequence, the PlayList processingunit 41 calculates STC_delta2 (Step S39), and obtains a STC value (STC2)of a new STC_Sequence by adding the STC_delta2 to a STC value of theoriginal STC_Sequence (Step S40).

Assume that the display start time of a picture lastly played in thepreceding STC_Sequence is PTS1(1stEND), the display time period of thepicture is TPP, and the start time of a picture initially displayed inthe following STC_Sequence is PTS2 (2ndSTART). Here, for cc=5, since itis necessary to match the time of PTS1(1stEND)+TPP with the time ofPTS2(2ndSTART), the STC_delta2 can be calculated from the followingequation:

STC_delta2=PTS1(1stEND)+TPP−PTS2(2ndSTART).

After the PlayList processing unit 41 instructs the audio decoder 9 tomute the Audio Overlap, and instructs the decoder to perform playback ofthe PlayItem_In_Time to the PlayItem_Out_Time (Step S41).

The controller 22 performs the STC switch process as described above,and this process is performed in a playback apparatus with generalimplementation when the decoder is in a free-run condition. The free-runcondition means the condition where the decoder is not performingsynchronous control. Subsequently, when the STC returns to the conditionwhere the STC time axis can be set, the decoder makes the transitionfrom the free-run condition to synchronous control with the STC. On theother hand, when the current PlayItem is judged not being cc=5 in StepS36 (Step S36: NO), the PlayList processing unit 41 performs theprocessing of cc=1 and cc=6.

Step S26 of FIG. 38 is a judging step for judging whether a newsecondary video stream is selected in accordance with the switch ofPlayItems. When Step S26 is YES, the PlayList processing unit 41performs Steps S45 to S47 of FIG. 40.

In Steps S45 to S47, the playback is switched from a SubPlayItem, whichis one of two consecutive SubPlayItems in one PlayItem, to the otherSubPlayItem, and the PlayList processing unit 41 sets the SubPlayItemafter the switch as the current SubPlayItem (Step S45).

Then, the PlayList processing unit 41 instructs the local storage 200 toread Access Units corresponding to the In_Time to the Out_Time of thecurrent SubPlayItem (Step S46), and instructs the decoder to performplayback of the current SubPlayItem_In_Time to the currentSubPlayItem_Out_Time (Step S47).

Thus, according to the present embodiment, a time gap is provided,within one PlayItem, between the current SubPlayItem and the precedingSubPlayItem, and such a boundary between SubPlayItems therefore does notrequire the seamless connection process procedure of Steps S37 to S41.As a result, the number of seamless connection procedure to be carriedout can be reduced, which eliminates the need for operating the playbackapparatus at a high clock frequency and leads to manufacturing ofplayback apparatuses at low cost.

Embodiment 4

The present embodiment relates to how to realize audio playback inPicture in Picture. The audio playback is specified in a STN_table inPlayList information. The following describes stream_entries for audioin a STN_table. The primary audio streams and secondary audio streamsdescribed above are assigned to primary video stream and secondary videostreams, respectively. That is, the primary audio stream is used asaudio source of the primary video stream while the secondary audiostreams are used as audio sources of the secondary video streams. Thestream_entries in the STN_table define which ones from the audios forthe primary and secondary video streams are permitted for playback.

FIG. 41 shows internal structures of a Primary_audio_stream_entry and aSecondary_audio_stream_entry and an internal structure of aComb_info_Secondary_video_Secondary_audio. The lead lines ha1 and ha2 inthe figure indicate close-ups of the internal structures of thePrimary_audio_stream_entry and Secondary_audio_stream_entry. Theseinternal structures are the same and each is composed of a stream_entryand a stream_attribute.

The lead line ha3 indicates a close-up of the internal structure of theStream_entry. As indicated by the lead line, the Stream_entry of theprimary/secondary audio stream includes: “ref_to_Sub_Path_id” indicatingSubPath information that refers to the secondary audio stream;“ref_to_Sub_Clip_entry_id” indicating a SubClip into which theprimary/secondary audio stream is multiplexed; and“ref_to_stream_PID_of_Sub_Clip” indicating a reference value for PIDs ofPES packets constituting the primary/secondary audio stream.

The lead line ha1 indicates a close-up of the internal structure of thestream_attribute. As shown by the lead line, the Stream_attribute of theprimary/secondary audio stream is composed of “stream_coding_type”indicating an encoding system of the audio stream;“audio_presentation_type” indicating a channel structure of acorresponding audio stream; “Sampling frequency” indicating a samplingfrequency of a corresponding audio stream; and “audio_language code”indicating a language attribute of the audio stream.

The stream_entry for a secondary video stream has, as shown by the leadline ha5, a Comb_info_Secondary_video_Secondary_audio as informationcorresponding to the secondary audio stream.

The lead line ha6 shows a close-up of the internal structure of theComb_info_Secondary_video_Secondary_audio. TheComb_info_Secondary_video_Secondary_audio is composed of“number_of_Secondary_audio_stream_ref_entries” indicating the totalnumber of secondary audio streams, each of which can be combined with asecondary video stream; and “Secondary_audio_stream_id_ref[0] to [n]”indicating stream numbers of secondary audio streams able to be combinedfor playback of the secondary video stream.

Thus, it can be seen that the STN_table includes stream_entries for theprimary audio streams which are audios of the primary video streams andstream_entries for the secondary audio streams which are audios ofsecondary video streams. In addition, in the stream_entries of thesecondary video streams, secondary audio streams, each to be combinedwith a secondary video stream, are described with respect to eachsecondary video stream (Comb_info_Secondary_video_Secondary_audio).

Thus concludes the description of the recording medium's features foraudio stream playback. The following describes features of the playbackapparatus for audio stream playback.

For audio playback, within the playback apparatus, a stream number ofthe current primary audio stream and a stream number of the currentsecondary audio stream are separately stored in the PSR set 23.

<PSR1>

FIG. 42A shows the bit assignment in the PSR1.

As shown in FIG. 42A, the lower eight bits (b0-b7) among 32 bits of thePSR1 represents a stream number, and identifies one of a plurality ofprimary audio streams whose entries are written in the STN table of thecurrent Play Item. When the value set in the PSR1 changes, the playbackapparatus plays a primary audio stream corresponding to the set valueafter the change. The PSR1 is set to “0xFF” as the initial value, andthen may be set to a value ranging from “1” to “32” by the playbackapparatus. The value “0xFF” is an unspecified value and indicates thatthere is no primary audio stream or that a primary audio stream has notbeen selected. When the PSR1 is set to a value ranging from “1” to “32”,the set value is interpreted as a stream number of a primary audiostream.

<PSR14>

FIG. 42B shows the bit assignment in the PSR14.

As shown in FIG. 42B, the lower eight bits (b0-b7) among 32 bits of thePSR14 represents a stream number, and identifies one of a plurality ofsecondary audio streams whose entries are written in the STN_table ofthe current Play Item. When the value set in the PSR14 changes, theplayback apparatus plays a secondary audio stream corresponding to theset value after the change. The PSR14 is set to “0xFF” as the initialvalue, and then may be set to a value ranging from “1” to “32” by theplayback apparatus. The value “0xFF” is an unspecified value andindicates that there is no secondary audio stream or that a secondaryaudio stream has not been selected. When the PSR14 is set to a valueranging from “1” to “32”, the set value is interpreted as a streamnumber of a secondary audio stream.

These secondary audio stream numbers are set and updated by theprocedure executing unit 42. The secondary audio stream numbers in thePSR14 shows status transition as shown in FIG. 43 by the procedureexecuting unit 42. FIG. 43 shows the status transition of the secondaryaudio stream numbers in the PSR14. In the figure, the term “valid” meansthat the value of the PSR14 is equal to or less than the number ofentries written in the STN_table of the Play Item, and is decodable.

The term “Invalid” means that (a) the secondary audio stream number ofthe PSR14 is “0”, (b) the secondary video stream number of the PSR14 islarger than the number of entries written in the STN_table of the PlayItem, or (c) decoding is not available even if the number of entrieswritten in the STN_table of the Play Item is in the range from “1” to“32”.

The frames drawn with dotted lines in FIG. 43 schematically indicateprocedures for determining the value of PSR when the status changes. Theprocedures for setting the PSR include “Procedure when playbackcondition is changed” and “Procedure when Stream change is requested”.These procedures are the same as those for the secondary video streamsin Embodiment 1.

The status transition is triggered by events such as “Load Disk”,“Change a Stream”, “Start PlayList playback”, “Cross a PlayItemboundary” and “Terminate PlayList playback”. These events are also thesame as those for the secondary video streams in Embodiment 1.

The following describes the procedure of “Procedure when Playbackcondition is changed” for secondary audio streams.

FIG. 44 is a flowchart showing a processing procedure of “Procedure whenplayback condition is changed” for secondary audio streams. Theprocedure executing unit 42 acquires, in Step S111, the secondary audiostream number from the PSR14, and judges, in Step S112, whether thesecondary audio stream of the acquired number satisfies the followingcondition (A).

Condition (A): based on a comparison of the secondary audio streamnumber specified in the Comb_info_secondary_video_Secondary_audio andthe secondary audio stream number acquired from the PSR14, thecombination of the secondary audio stream with the number and thecurrent secondary video stream is allowed.

After the judgment, the procedure executing unit 42 executes Step S113.Step S113 is a judgment step for judging whether the number ofStream_entries of the secondary audio streams for the current PlayItemis 0. When the number of Stream_entries in the STN_table is 0, theprocedure executing unit 42 maintains the secondary audio stream numberin the PSR14 (Step S116). If the number of Stream_entries in theSTN_table is not 0, the procedure executing unit 42 performs thejudgment of Step S114.

In Step S114, the procedure executing unit 42 judges whether thesecondary audio stream number is equal to or less than the number ofstream_entries in the STN_table of the current PlayItem and whether asecondary audio stream with the number satisfies the condition (A). IfNO in Step S114, it is considered that the number of a valid secondaryaudio stream is present in the PSR14, and the number is maintained (StepS117). If YES in Step S114, the procedure executing unit 42 selects themost appropriate secondary audio stream for the current PlayItem (StepS115).

Thus concludes the description of “Procedure when playback condition ischanged” for secondary audio streams.

FIG. 45 is a flowchart showing a procedure for selecting the mostappropriate secondary audio stream for the current PlayItem.

In Steps S121 to S123, the procedure executing unit 42 checks allstreams written in the stream_entries of the STN_table for whether thefollowing conditions are satisfied.

Condition (a): based on a comparison of the secondary audio streamnumber specified in the Comb_info_secondary_video_Secondary_audio andthe number of secondary audio stream i, the combination of the secondaryaudio stream i and the current secondary video stream is allowed.

Condition (b): the audio_language_code of the current primary audiostream matches the audio_language_code of the secondary audio stream.

When these checks are completed for all playback-permitted secondaryaudio streams in the STN_table, the procedure executing unit 42 executesStep S124.

Step S124 is a judgment step for judging whether a secondary audiostream that satisfies the condition (a) is absent. If YES in Step S124,0xFF is set in the PSR14 as the stream number of a secondary audiostream (Step S125).

When a secondary audio stream that satisfies the condition (a) ispresent, the procedure executing unit 42 executes the judgement of StepS126. Step S126 is for judging whether there is at least one secondaryaudio stream that satisfies both conditions (a) and (b). If YES in StepS126, the procedure executing unit 42 selects, from among streamssatisfying the conditions (a) and (b), one whose correspondingStream_Entry is located at the top of the STN_table, and set the streamnumber of the selected secondary audio stream in the PSR14 (Step S127).

When there is no secondary audio stream satisfying the conditions (a)and (b), the procedure executing unit 42 executes the judgment of StepS128. Step S128 is for judging whether one or more secondary audiostreams satisfying the condition (a) is present. When YES in Step S128,the procedure executing unit 42 selects, from among the secondary audiostreams satisfying the condition (a), one whose correspondingStream_Entry comes first in the STN_table, and sets the stream number ofthe selected secondary audio stream in the PSR14 (Step S129).

Thus concludes the description of the procedure for selecting the mostappropriate secondary audio stream.

FIG. 46 is a flowchart showing a processing procedure for secondaryaudio streams.

In Step S131, the procedure executing unit 42 checks whether a secondaryaudio stream specified by a number corresponding to the user operation(number x) satisfies the condition (A).

Condition (A): based on a comparison of the secondary audio streamnumber specified by the Comb_info_secondary_video_Secondary_audio andthe secondary audio stream number determined by the number x, thecombination of the secondary audio stream with the number x and thecurrent secondary video stream is allowed.

If the condition (A) is satisfied, the procedure executing unit 42executes the judgment of Step S132. Step S132 is for judging whether thenumber x is equal to or less than the total number of stream_entries inthe STN_table and whether a secondary audio stream corresponding to thenumber x satisfies the condition (A). When YES in Step S132, theprocedure executing unit 42 selects the secondary audio streamdetermined by the number x, and set the number x in the PSR14 (StepS142). If NO in Step 5132, the procedure executing unit 42 performs thejudgment of Step 5133. Step S133 is for judging whether the number x is0xFF. The meaning of “0xFF” is the same as that of the number x inEmbodiment 1, an “entrustment number”. If the number x is not 0xFF, theprocedure executing unit 42 maintains the current secondary audio streamnumber of PSR14 (Step S143).

If the number x is 0xFF, the procedure executing unit 42 checks, inSteps S134 to S136, all secondary audio streams written in thestream_entries of the STN_table for whether the following conditions aresatisfied, to thereby select the most appropriate secondary audio streamfor the current PlayItem.

When a secondary audio stream to be checked is secondary audio stream i,conditions (a) and (b) are specified as follows.

Condition (a): based on a comparison of the secondary audio streamnumber specified in the Comb_info_secondary_video_Secondary_audio andthe number of the secondary audio stream i, the combination of thesecondary audio stream i and the current secondary video stream isallowed.

Condition (b): the audio_language_code of the current primary audiostream matches the audio_language_code of the secondary audio stream i.

After executing the loop processing, the procedure executing unit 42executes the judgment of Step S137. Step S137 is for judging whether atleast one stream satisfying the conditions (a) and (b) is present. WhenYES in Step S137, the procedure executing unit 42 selects, from amongthe secondary audio streams satisfying the conditions (a) and (b), onewhose corresponding Stream_Entry comes first in the STN_table, and setsthe stream number of the selected secondary audio stream in the PSR 14.

If NO in Step S137, the procedure executing unit 42 judges whether oneor more secondary audio streams satisfying the condition (a) are presentin Step S139. When YES in Step S139, the procedure executing unit 42selects in Step S140, from among the secondary audio streams satisfyingthe condition (a), one whose corresponding Stream_Entry comes first inthe STN_table, and sets the stream number of the selected secondaryaudio stream in PSR14. If NO in Step S139, the procedure executing unit42 maintains the secondary audio stream number of PSR14 (Step S141).

Thus concludes the description of “Procedure when stream change isrequested” for secondary audio streams.

Thus concludes the procedures performed by the procedure executing unit42 of the present embodiment. The following describes the mixing controlunit 45, which is a feature of the audio stream playback.

The mixing control unit 45 controls the mixer 9 a to mix the playbackoutback of the primary audio stream of the audio decoder 8 a and theplayback output of secondary audio streams of the audio decoder 8 b.

When the current playback time point in the PlayItem time axis is in aperiod from In_time to Out_time of the SubPlayItem information, and whenthe secondary audio stream is set as “playback permitted” in theSTN_Table of the current PlayItem information, the mixing control unit45 controls the mixer 9 a to mix the playback output of the audiodecoder 7 a with the playback output of the audio decoder 7 b becausethe audio decoder 7 b is decoding the secondary audio stream having thestream number stored in PSR14.

If the attribute of the primary audio stream is “surround”, the playbackoutput of the secondary audio stream can be mixed after a downmixing isperformed such that only desired components are held among componentssuch as L, R, C, LS, RS, LR, RR, and LFE. Here, when the secondary audiostream is, for example, a commentary of the movie director, by changingthe channel of the primary audio stream, with which the secondary audiostream is to be mixed, from L to C and to R, it is possible to give theuser a sensation as if the director is waking around the user. Suchmixing is called panning. In panning, the sound/voice of a secondaryaudio stream (for example, monaural) with a less number of channels thana primary audio stream is used.

Thus, according to the present embodiment, playback-permittedcombinations of primary audio streams for the primary video stream andsecondary audio streams for the secondary video streams are defined inthe STN_table. Then, the mixing is performed by selecting one from eachof the primary audio streams and the secondary audio streams from thestream_entries in the STN_table. As a result, at the execution ofPicture in Picture, it is possible to provide composite audio where thecommentary of the movie director is added to the audio of the mainmovie.

For example, assume that the secondary video is a video in which onlythe movie director and/or cast appear and they are acting, for example,as if pointing at video contents of the primary video. By combining asecondary video video of the video contents and a secondary video of themovie director's commentary in Picture in Picture, it is possible torealize an amusing screen effect where the movie director and/or castare giving commentary while pointing at the contents in the playbackvideo of the movie.

Embodiment 5

The present embodiment relates to an improvement in subtitle playback inPicture in Picture. The subtitle playback is specified in the STN_tableof the PlayList information. The following describes stream_entries forsubtitles in the STN_table. Although the primary audio streams andsecondary audio streams are assigned to primary video stream andsecondary video streams, respectively, subtitles are not classified intoones for primary video streams and ones for secondary video streams, yetstill can be differentiated into Presentation Graphics streams andtextST streams.

The following describes stream_entries for PgtestST streams. FIG. 47shows part of the STN_table, especially related to the PgtestST streams.According to the figure, components of the STN_table especially relatedto subtitle display are: “number_of_PG_textST_streams_entries[1] to[n]”; “number_of_PiP_PG_textST_stream_entries_plus”;“PgtestST_stream_entry” and “Comb_info_Secondary_video_PiP_PG_textST” in“Secondary_video_Stream_entry”.

“number_of_PG_textST_streams_entries” indicates the number of PgtestSTstreams which are selecting targets when Picture in Picture is not beingperformed.

“number_of_PiP_PG_textST_stream_entries_plus” indicates the number ofPresentation Graphics streams and textST streams that should be added tothe number_of_PiP_PG_textST_stream_entries defined in the STN_table fora Picture in Picture application. The sum of thenumber_of_PG_textST_streams_entries and thenumber_of_PiP_PG_textST_stream_entries_plus is 255 or less.

Here, when the number_of_PG_textST_streams_entries is n1, the streamnumbers from 1 to n1 become the range of the PGtextST streams. On theother hand, when the number_of_PiP_PG_textST_stream_entries_plus is n2,the stream numbers from 1 to n1+n2 become the range of the PGtextSTstreams. That is, if the number_of_PiP_PG_textST_stream_entries_plus iswritten in the STN_table, the range of the stream numbers of thePGTextST streams widens by the number written in thenumber_of_PiP_PG_textST_stream_entries_plus.

When Picture in Picture is not being performed, 1 to n1 among thestream_entries of the PGtestST streams become selecting targets. WhenPicture in Picture is being performed, 1 to n1+n2 among thestream_entries of the PGtestST streams become selecting targets. Notethat, even if Picture in Picture is performed, it is not that a subtitlefor the primary video and a subtitle for the secondary video areseparately played. Only one of the primary video subtitle and secondaryvideo subtitle is displayed in Picture in Picture. This is based on tworeasons: (i) if the primary video subtitle and the secondary videosubtitle are separately recorded on the BD-ROM, the playback apparatusneeds to have two decoders for graphics, which leads to an increase inhardware cost; and (ii) if scaled down for the secondary video, thesubtitle will be hard to see.

The lead line hp1 indicates a close-up of the internal structure of thePG_testST_Stream_entry. As shown by the lead line, thePG_testST_Stream_entry is composed of a Stream_entry and aStream_Attribute, and the Stream_entry includes a PID of aplayback-permitted PGtestST stream.

The lead line hp2 indicates a close-up of the internal structure of“Secondary_video_Stream_entry[1]”. In theComb_info_Secondary_video_PiP_PG_textST of the internal structure,PGtestST streams which are allowed to be composed with secondary videostream are uniquely indicated.

The lead line hp3 indicates the internal structure of theComb_info_SEcondary_video_PiP_PG_textST. TheComb_info_SEcondary_video_PiP_PG_textST is composed of:“number_of_PiP_PG_textST_stream_ref_entries” indicating the total numberof PiP_PG_textST streams, each of which can be combined with a secondaryvideo stream; and “PiP_PG_textST_stream_id_ref[0] to [n]” indicatingstream numbers of the PiP_PG_textST streams which can be combined forplayback.

Thus concludes the description of the improvement in the recordingmedium of the present embodiment. The following describes an improvementin the playback apparatus of the present embodiment. For subtitleplayback, within the playback apparatus, a stream number of the currentPGTextST stream for Picture in Picture execution and a stream number ofthe current PGTextST stream for Picture in Picture nonexecution areseparately stored in the PSR set 23.

FIG. 48A shows the range of stream numbers that the stream number of thecurrent PGtestST stream can possibly take. IfPiP_PG_text_ST_stream_number is n1, the stream number of the currentPGtestST stream takes a value ranging from 1 to n1, as shown in theupper part of the figure, when Picture in Picture is not being executed.

On the other hand, the number of the current PGtestST stream for Picturein Picture execution is called PiP_PG_TextST stream number, and if thePG_text_ST_stream_number written in the STN_table is n1 and thenumber_of_PiP_PG_textST_stream_entries_plus is n2, the PiP_PG_TextSTstream number takes a value ranging from 1 to n1+n2, as shown in thelower part of the figure.

FIG. 48B shows the bit assignment in the PSR2. The following explainseach bit of the PSR2.

disp_s_flag

b31 of the PSR2 is disp_s_flag, and a value set in the one bit isinterpreted as follows:

0b: display of both “PG_textST_stream” and “PiP_PG_textST_stream” isdisabled; and

1b: display of both “PG_textST_stream” and “PiP_PG_textST_stream” isenabled.

PiP_PG_textST_valid_flag

b30 of the PSR2 is PiP_PG_textST_valid_flag, and a value set in the onebit is interpreted as follows:

0b: when a secondary video stream is displayed during the display of thecurrent PlayItem, the PG TextST Stream Number defined in the PSR2 isused; and

1b: when a secondary video stream is displayed during the display of thecurrent PlayItem, the PiP_PG_TextST Stream Number defined in the PSR2 isused.

When a secondary video stream is not displayed during the display of thecurrent PlayItem, the PiP_PG_textST_valid_flag does not have an effecton the display of the BD-ROM playback apparatus. In this case, the PGTextST Stream Number defined in the PSR2 is used.

PG TextST Stream Number:

b0 to b11 of the PSR2 are the PG TextST Stream Numbers, and values setin the twelve bits are interpreted as follows:

When a secondary video stream is not displayed during the display of thecurrent PlayItem (“when a secondary video stream is not displayed” meansthat the disp_v_flag of the PSR14 is set to 0b), the value of the PGTextST Stream Number in the PSR2 is used to determine that either one ofthe PG stream and the TextST stream out of the PGTextST streams in theSTN_table of the current PlayItem is displayed.

PiP_PG_TextST Stream Number:

b16 to b27 of the PSR2 are the PiP_PG_TextST Stream Number, and a valueset in the twelve bits are interpreted as follows:

When a secondary video stream is displayed during the display of thecurrent PlayItem and the PiP_PG_textST_valid_flag of the PSR2 is set to1b (“when a secondary video stream is displayed” means that thedisp_v_flag of the PSR14 is set to 1b, and the secondary video streamdetermined by the PSR14 is displayed during the display of the currentPlayItem), the value of the PiP_PG_TextST Stream Number in the PSR2 isused to determine that either one of the PG stream and the TextST streamout of the PGTextST streams in the STN_table of the current PlayItem isdisplayed.

Stream numbers of the PGtestST streams for Picture in Picturenonexecution and the handling of these are not the focus of the presentinvention, and their descriptions are therefore omitted here in thepresent embodiment.

FIG. 49 shows the status transition of the PiP_PG_TextST stream numberswhich are stream numbers of Picture in Picture PGtestST streams. In thefigure, the term “valid” means that the value of the PiP_PG_TextSTstream number of the PSR2 is equal to or less than the number of entrieswritten in the STN_table of the Play Item, and is decodable.

The term “Invalid” means that (a) the PiP_PG_TextST stream number of thePSR2 is “0”, (b) the PiP_PG_TextST stream number of the PSR2 is morethan the number of entries written in the STN_table of the Play Item, or(c) decoding is not available even if the number of entries written inthe STN_table of the Play Item is in the range from “1” to “32”.

The frames drawn with dotted lines in FIG. 49 schematically indicateprocedures for determining the value of PSR when the status changes. Theprocedures for setting a PGTextST stream number to the PSR2 include“Procedure when playback condition is changed” and “Procedure whenStream change is requested”.

The “Procedure when playback condition is changed” and “Procedure whenStream change is requested” as indicated by the frames drawn with dottedlines are the same as those for the secondary video streams inEmbodiment 1.

The status transition is triggered by events such as “Load Disk”,“Change a Stream”, “Start PlayList playback”, “Cross a PlayItemboundary” and “Terminate PlayList playback”. These events are also thesame as those for the secondary video streams in Embodiment 1.

The following describes a processing procedure of “Procedure when streamchange is requested”.

FIG. 50 is a flowchart showing the processing procedure of the“Procedure when stream change is requested” for PGtestST streams.

The procedure executing unit 42 obtains the current PiP_PG_TextST streamnumber from the PSR2 in Step S151, and judges whether the currentPiP_PG_TextST stream number is for either the Presentation Graphicsstream or the textST stream in Step S152. In Step S153, the procedureexecuting unit 42 judges whether a Presentation Graphics streamcorresponding to the current PiP_PG_TextST stream number satisfiesconditions (A), (B) and (C).

Here, the conditions (A), (B) and (C) are specified as follows.

Condition (A): the playback apparatus is capable of decoding aPresentation Graphics stream specified by the number of the currentPiP_PG_TextST stream number;

Condition (B): the playback apparatus is capable of playing a specifiedlanguage; and

Condition (C): based on a comparison of the secondary video streamnumber in the PSR14 and the PGtextST stream number ofcomb_info_Secondary_video_PiP_textST( ), a combination of the currentsecondary video stream and a PGtextST stream specified by the currentPiP_PG_TextST stream number is allowed.

On the other hand, in Step S154, the procedure executing unit 42 judgeswhether a textST stream corresponding to the current PiP_PG_TextSTstream number satisfies Conditions (A), (B) and (C).

Condition (A): the playback apparatus is capable of converting charactercodes of the textST stream of the current PiP_PG_TextST stream numberinto bitmap. Such a playback capability is indicated in the PSR30 of thePSR set 23.

Condition (B): the playback apparatus is capable of supporting languageattributes of the textST stream of the current PiP_PG_TextST streamnumber. Such support capability is indicated in the PSR48 to PSR61 ofthe PSR set 23.

Condition (C): based on a comparison of the secondary video streamnumber in the PSR14 and the PGtextST stream number of thecomb_info_Secondary_video_PiP_textST( ), a combination of the currentsecondary video stream stored in the PSR14 and the PGtextST streamspecified by the current PiP_PG_TextST stream number is allowed.

Here, when a subtitle in some language is expressed by a textST stream,the playback apparatus must have a capability of converting thecharacter codes into bitmap and a support capability of supporting thelanguage attributes in order to “be able to decode” textST streams inthe language.

Here, English, Japanese and Arabic are taken as examples. RegardingEnglish subtitles, the playback apparatus is considered to support thelanguage attributes only when it has functions of “horizontal writing”,“kerning” and “double letter/ligature”.

Regarding Japanese subtitles, the playback apparatus is considered tosupport the language attributes only when it has functions of“horizontal writing”, “vertical writing”, “line end wrap”, and “ruby”.

Regarding Arabic subtitles, the playback apparatus is considered tosupport the language attributes only when it has functions of“right-to-left writing” and “double letter/ligature”.

When the playback apparatus is able to convert textST streams in somelanguage into bitmap and support the language attributes, it isconsidered that the above-mentioned conditions (A) and (B) aresatisfied. When the playback apparatus can convert the textST streams inthe language into bitmap, yet cannot support the language attributes, itis considered that the condition (B) is not satisfied while only thecondition (A) is satisfied.

After completing the above judgments, the procedure executing unit 42executes Step S155. Step S155 is a step for judging whether the playbackapparatus satisfies condition (Z).

Here, the condition (Z) is that the user intends playback of a subtitlein an unsupported language. This intention is indicated in the PSR30 ofthe PSR set 23.

Subsequently, the procedure executing unit 42 executes the judgment stepof Step S156. This is a step for judging whether the sum of thenumber_of_PG_textST_streams_entries and thenumber_of_PiP_PG_textST_stream_entries_plus in the STN_table of thecurrent PlayItem is “0”. When there is no playback-permitted PGTextSTstream in the STN_table, the procedure executing unit 42 maintains thePGTextST stream number of the PSR2 (Step S157). When at least oneplayback-permitted PGTextST stream in the current STN_table is present,the procedure executing unit 42 executes Step 5158. This is a step forchecking whether the current PiP_PG_TextST stream number is valid, andthe procedure executing unit 42 judges whether the current PiP_PG_TextSTstream number is equal to or less than the total number of thestream_entries in the STN_table and whether the current PiP_PG_TextSTstream number satisfies the conditions (A), (B) and (C).

When YES in Step 5158, the procedure executing unit 42 maintains thevalue in the PSR2, considering that a valid PiP_PG_TextST stream numberis already set in the PSR2 (Step S159).

If NO in Step S158, the procedure executing unit 42 executes thejudgement step of Step S160. This is a step for judging whether thecurrent PiP_PG_TextST stream number is equal to or less than the totalnumber of the stream_entries in the STN_table and whether the currentPiP_PG_TextST stream number satisfies the condition (A). If YES in StepS160, the procedure executing unit 42 maintains the value in the PSR2because, although a PiP_PG_TextST stream number for a text subtitle inan unsupported language is set in the PSR2, the user intends theplayback of the unsupported language (Step S161). When NO in Step S160,the procedure executing unit 42 selects the most appropriate stream forthe current PlayItem (Step S162).

Thus concludes the description of “Procedure when playback condition ischanged” for PGTextST streams.

FIG. 51 is a flowchart showing a processing procedure for selecting themost appropriate PGTextST stream for the current PlayItem.

The procedure executing unit 42 checks, in Step S190, all PGTextSTstreams for whether to satisfy conditions (a) to (d).

When a Presentation Graphics stream to be checked is PresentationGraphics stream i, the conditions (a) to (d) are specified as follows.

Condition (a): the playback apparatus is capable of decoding thePresentation Graphics stream i;

Condition (b): the playback apparatus is capable of playing a languagespecified by the Presentation Graphics stream i;

Condition (c): based on a comparison of the secondary video streamnumber in PSR14 and the PGtextST stream number of thecomb_info_Secondary_video_PiP_textST( ), a combination of the currentsecondary video stream and the Presentation Graphics stream i isallowed; and

Condition (d): the PG_language_code of the Presentation Graphics streami matches the language setting on the playback apparatus.

When a textST stream to be checked is Presentation Graphics stream i,the conditions (a) to (d) are specified as follows.

Condition (a): the playback apparatus is capable of converting charactercodes of the textST stream i into bitmap;

Condition (b): the playback apparatus is capable of supporting languageattributes of the textST stream i;

Condition (C): based on a comparison of the secondary video streamnumber in the PSR14 and the number of the PGtextST stream i of thecomb_info_Secondary_video_PiP_textST( ), a combination of the currentsecondary video stream and the textST stream i specified by thePiP_PG_TextST stream number is allowed.

Condition (d): the textST_language_code of the testST stream i matchesthe language setting on the playback apparatus.

After completing the above judgments, the procedure executing unit 42judges, in Step S191, whether the playback apparatus satisfies thecondition (Z) described in the previous flowchart (i.e. playback of theunsupported language). When NO in Step S191, the procedure executingunit 42 judges, in Step S192, whether there are one or more PGTextSTstreams that satisfy the conditions (a) to (d). If YES in Step S192, theprocedure executing unit 42 selects, from among the PGTextST streamssatisfying the conditions (a) to (d), one whose correspondingStream_Entry comes first in the STN_table, and sets the stream number ofthe selected PiP_PG_TextST stream number in the PSR2 (Step S193).

When NO in Step S192, the procedure executing unit 42 judges whetherthere are one or more PGTextST streams satisfying an eased condition.Here, the eased condition means to satisfy the three conditions (a), (b)and (c), and the procedure executing unit 42 judges, in Step S194,whether there are one or more PGTextST streams satisfying the easedcondition. If YES in Step S194, the procedure executing unit 42 selects,from among the PiPPGtestST streams satisfying the conditions (a), (b)and (c), one whose corresponding Stream_Entry comes first in theSTN_table, and sets the selected PiP_PG_TextST stream number in the PSR2(Step S196).

When NO in Step S194, the procedure executing unit 42 sets 0xFFF to thePSR2 as the PiP_PG_TextST stream number (Step S195). When judging, inStep S191, that the playback apparatus satisfies the condition (Z), theprocedure executing unit 42 judges, in Step S197, whether there are oneor more PGTextST streams satisfying another eased condition. Here,another eased condition means to satisfy the conditions (a), (c) and(d), and the procedure executing unit 42 judges, in Step S198, whetherthere are one or more PGTextST streams satisfying the eased condition.

If YES in Step S197, the procedure executing unit 42 selects, from amongthe PGTextST streams satisfying the conditions (a), (c) and (d), onewhose corresponding Stream_Entry comes first in the STN_table, and setsthe stream number of the selected PiP_PG_TextST stream number in thePSR2 (Step S198).

When NO in Step S197, the procedure executing unit 42 judges, in StepS199, whether there are one or more PGTextST streams satisfying theconditions (a) and (c). If YES in Step S199, the procedure executingunit 42 selects, from among the PiP_PGtestST streams satisfying theconditions (a) and (c), one whose corresponding Stream_Entry comes firstin the STN_table, and sets the number of the selected PiP_PG_TextSTstream in the PSR2 (Step S200). When NO in Step S199, the procedureexecuting unit 42 sets 0xFFF in the PSR2 (Step S201).

Thus concludes the description of the procedure for selecting the mostappropriate PGTextST stream.

FIG. 52 is a flowchart showing a processing procedure of “Procedure whenstream change is requested” for PGTextST streams.

In Step S171, the procedure executing unit 42 judges that the number xobtained in response to the user operation indicates either thePiP_PG_TextST stream number for a Presentation Graphics stream or thePiP_PG_TextST stream number for a textST stream. In Step S172, theprocedure executing unit 42 judges whether the presentation Graphicsstream corresponding to the number x satisfies the following conditions(A), (B) and (C).

Condition (A): the playback apparatus is capable of decoding thePresentation Graphics specified by the number x;

Condition (B): the playback apparatus is capable of playing a languagewhich is an attribute of the specified Presentation Graphics stream; and

Condition (C): based on a comparison of the secondary video streamnumber in the PSR14 and the PGtextST stream number of thecomb_info_Secondary_videoPiP_textST( ), a combination of the currentsecondary video stream and the PGtextST stream specified by the number xis allowed.

In Step S173, the procedure executing unit 42 checks whether the textSTstream corresponding to the number x satisfies the following conditions(A), (B) and (C).

Condition (A): the playback apparatus is capable of converting charactercodes of the textST stream corresponding to the number x into bitmap;

Condition (B): the playback apparatus is capable of supporting languageattributes of the textST stream corresponding to the number x; and

Condition (C): based on a comparison of the secondary video streamnumber in the PSR14 and the PGtextST stream number of thecomb_info_Secondary_video_PiP_textST( ), a combination of the currentsecondary video stream and the PGtextST stream specified by the number xis allowed.

The procedure executing unit 42 checks, in Step S174, whether theplayback apparatus satisfies the condition (Z), and performs thejudgement of Step S175. This judgment is for judging whether the numberis equal to or less than the total number of the stream_entries in theSTN_table and whether the number satisfies the condition (A). When YESin Step S175, the procedure executing unit 42 selects a PGTextST streamof the PiP_PG_TextST stream number, which is the number x, and sets thenumber in the PSR2 (Step S176).

When NO in Step S175, the procedure executing unit 42 performs thejudgment of Step S177. This judgment is for judging whether the numberis equal to or less than the total number of the stream_entries in theSTN_table and whether the number satisfied the condition (A) (C) and(Z). When YES in Step S177, the procedure executing unit 42 selects aPiP_PGTextST stream corresponding to the number x, and sets thePiP_PG_TextST stream number in the PSR2 (Step S178).

If NO in Step S177, the procedure executing unit 42 performs thejudgment of Step S179. The judgment is for judging whether the number xis 0xFFF. When NO in Step S179, the procedure executing unit 42maintains the value in the PSR 2, assuming that there is no PGTextSTstream permitted for playback in the STN_table (Step S180).

If the number x is 0xFFF, the procedure executing unit 42 selects themost appropriate PGTextST stream for the current PlayItem (Step S181).The selection of the most appropriate PGTextST stream is the same asshown in FIG. 51.

Thus concludes the description of the “Procedure when stream change isrequested” for PGTextST stream.

Thus, according to the present embodiment, when Picture in Picture isvalid, a PiP_PG_TextST stream number is selected from the numeric rangewhich is obtained by adding the number_of_PG_textST_streams_entries andthe number_of_PiP_PG_text_stream_entries_plus, and either thePresentation Graphics stream or the textST stream corresponding to thePiP_PG_TextST stream number is played. As a result, it is possible toplay a subtitle suitable for the primary video stream together withvideos in one instance and to play a subtitle suitable for the secondaryvideo stream together with videos in another instance, which leads to anexpansion of the range of subtitle options.

Embodiment 6

The present embodiment gives a detailed explanation of production andcommercial manufacture of the BD-ROM described in the above embodiments.

<Production of BD-ROM>

First, a planning process is carried out. In this process, whatscenarios are used to play the BD-ROM is decided.

Next, a material creation process is carried out. In this process,materials for video recording, audio recording and the like are created.

Then, a formatting process is carried out. In this process, an overviewof the data to be recorded in the volume area (generally referred to as“volume data”) of the BD-ROM is obtained based on the scenarios createdin the planning process and the materials.

Instances of a class structure described in a programming language arethe format of the application layer of the recording medium according tothe present invention. Clip information, PlayList information and thelike can be created by describing instances of the class structure basedon syntaxes specified in the BD-ROM standard. In this case, data in atable format can be defined using “for” statements of a programminglanguage, and data required under specific conditions can be definedusing “if” statements.

Lastly, a press process is carried out. In this press process, volumeimages are converted into physical data sequences, and master diskcutting is conducted by using the physical data sequences to create amaster disk.

A master is created by a press apparatus, and then the BD-ROMs arecommercially mass-produced. The production is composed of variousprocesses, mainly including substrate molding, reflective film coating,protective film coating, laminating and printing a label.

By completing these processes, the recording medium (BD-ROM) describedin each embodiment above can be created.

<Additional Content Creating Process>

When a motion picture is composed of BD-ROM contents and additionalcontents, the above-mentioned planning process to formatting process arecarried out. Then, AVClips, Clip information and PlayList informationmaking up one piece of volume data are obtained. Ones which will beprovided by the BD-ROM are removed from the obtained AVClips, Clipinformation and PlayList information, and the remaining information isassembled into one file as additional contents by an archiver program orthe like. When such additional contents are obtained after theseprocesses, the additional contents are provided to a www server and sentto playback apparatuses upon request.

<Authoring System>

Among the above-mentioned multiple processes, the formatting process isa core of the BD-ROM production, and conducted using a special systemcalled an authoring system. This system is established in a productionstudio, and provided for the users. FIG. 53 shows an internal structureof an authoring system of Embodiment 6. The following describes theauthoring system with reference to the figure.

As shown in the figure, the authoring system is structured by connectingthe following apparatuses to one another via an internal network: atitle configuration creating apparatus 51; a reel set editing apparatus52; a BD scenario generating apparatus 53; a Java™ programming apparatus54; a material creating/importing apparatus 55; a disk creatingapparatus 56; a verification apparatus 57; a master creating unit 58.

1) Title Configuration Creating Apparatus 51

The title configuration creating apparatus 51 determines contents thatmake up each title indicated by Index.bdmv. The decision of theapparatus is made by creating title configuration information. The titleconfiguration information is information that specifies the relationshipamong titles, Movie objects, BDJ objects and PlayLists using a treestructure. Specifically speaking, the title configuration informationspecifies a node corresponding to a “disk name” of the BD-ROM to beproduced, a node corresponding to a “title” that can be played inIndex.bdmv on the BD-ROM, nodes corresponding to “a Movie object and aBDJ object” constituting the title, and nodes of “PlayLists” played bycommands constituting the Movie object and BDJ object, and thenspecifies the relationship among the title, Movie object, BDJ object andPlayLists by connecting these nodes with edges. In the titleconfiguration information, the PlayList information is described notusing file names such as 00001.mp1s and 00002.mp1s but using abstractnames such as MainPlaylist and MenuPlaylist. The apparatus makes thetitle configuration information completed by creating such a treestructure based on interactive operations with the user.

2) Reel Set Editing Apparatus 52

The reel set editing apparatus 52 determines the relationship amongmultiple elementary streams constituting one complete movie, such asvideos, audios, subtitles and buttons. For example, when a single movieis composed of one video stream, two audio streams, three subtitlestreams and one button stream, the reel set editing apparatus specifiesthat one movie is formed with these elementary streams, and havefunctions to assign, to the main movie, a director's cut havingpartially different images and to arrange multi-angle scenes havingmultiple angles. A reel set file output from the reel set editingapparatus 52 is a compilation of the above-mentioned information.

3) BD scenario generating apparatus 53

The BD scenario generating apparatus 53 is composed of a menu editingunit 53 a and a scenario editing unit 53 b.

<Menu Editing Unit 53 a>

The menu editing unit 53 a positions buttons constituting InteractiveGraphics Streams according to the user operations via GUI and createsfunctions such as commands to be attached to buttons, button animationand the like.

<Scenario Editing Unit 53 b>

The scenario editing unit 53 b creates and outputs scenarios byperforming an editing process according to the user operations via GUIon the title configuration information created by the titleconfiguration creating apparatus 51. Here, scenarios mean informationthat causes the playback apparatus to perform playback in a unit oftitle. In the BD-ROM, information defined as the IndexTable, MovieObjectand PlayList is scenarios. The BD-ROM scenario data includes materialinformation constituting streams, playback path information, menu screenarrangement and information on transition from the menu, and the userconducts scenario editing operations using the scenario generatingapparatus until the verification of these information is completed. Inthe scenario editing operations, the scenario editing unit 53 b sets thecontents of the PlayLists of the title configuration information. Bydefining the STN_table shown in Embodiments 1, 4 and 5 and thePiP_metadata in Embodiment 2 as components of the PlayList in thescenario editing operations, these components are incorporated in theBD-ROM scenario data.

In addition, the BD-ROM scenario data output by the BD scenariogenerating apparatus 53 includes parameters for realizing multiplexingin the multiplexer 56 e to be hereinafter described.

The BD scenario generating apparatus 53 is able to create scenarios forthe above-mentioned data structure of the seamless video menu. The userselects a video desired to seamlessly play as a background video of themenu by using the menu editing unit 53 a with operations via GUI. Thescenario editing unit 53 b creates a PlayList that conforms to the datastructure of the seamless video menu. The scenario editing unit 53 badjusts the number of PlayItems of the PlayList to conform the number ofthe AVClips, and outputs them as BD-ROM scenario data. At this point,the scenario editing unit 53 b sets parameters to realize multiplexingin the multiplexer 56 e to thereby play each AVClip seamlessly.

4) Java™ Programming Apparatus 54

The Java™ programming apparatus 54 is composed of an ID class creatingunit 54 a, a Java™ program editing unit 54 b, and a BDJ object creatingunit 54 c.

<ID Class Creating Unit 54 a>

The ID class creating unit 54 a creates ID class source codes usingtitle configuration information created by the title configurationcreating apparatus 51. The ID class source codes are source codes of aJava™ class library for accessing the Index.bdmv and PlayListinformation by which a Java™ program is ultimately created on the disk.Here, a Java™ class library which is a compilation formed from the IDclass source codes is called an ID class library.

The ID class source codes are designed and implemented so that each hasa constructor that reads a predefined PlayList file from the disk byspecifying a PlayList number and that the playback of the AVClips can becarried out using instances which are created by executing theconstructor. Names of variables of the ID class library are defined byusing the names of PlayList nodes defined by the title configurationinformation, such as MainPlaylist and MenuPlaylist. The PlayList numberused at this point may be a dummy number.

<Java™ Program Editing Unit 54 b>

The Java™ program editing unit 54 b creates source codes of a Java™program in response to the user's request via a user interface such asGUI, and outputs the Java™ program source codes. In a Java™ program, itis the ID class library that makes reference to the Index.bdmv andPlayLists.

<BDJ Object Creating Unit 54 c>

The BDJ object creating unit 54 c creates BDJ object creatinginformation based on the Java™ program source codes created by the Java™program editing unit 54 b and the ID class source codes created by theID class creating unit 54 a. The BDJ object creating information isinformation to be a form of BDJ objects which are eventually recorded onthe BD-ROM, and specifies PlayLists to be played not by specific filenames such as 00001.mp1s and 00002.mp1s, but by variable names definedin the ID class library.

5) The material creating/importing apparatus 55 is composed of asubtitle creating unit 55 a, a audio importing unit 55 b, a videoimporting unit 55 c, and a Java™ importing unit 55 d. The materialcreating/importing apparatus 55 converts input video materials, audiomaterials, subtitle materials, Java™ program source codes and the likeinto video streams, audio streams, subtitle data, Java™ program sourcecodes and the like compliant with the BD-ROM standard, and sends them tothe disk creating apparatus 56.

<Subtitle Creating Unit 55 a>

The subtitle creating unit 55 a creates subtitle data compliant with theBD-ROM standard based on a subtitle information file including asubtitle, display timing information, and subtitle effects such asfade-in/fade-out.

<Audio Importing Unit 55 b>

The audio importing unit 55 b, in the case when an audio alreadycompressed into the AC-3 format is input thereto, adds timinginformation for a corresponding video and/or deletes unnecessary datato/from the input audio and outputs the result. When a noncompressedaudio is input, it is converted into a format specified by the userbefore the output.

<Video Importing Unit 55 c>

The video importing unit 55 c, in the ease when a video stream alreadycompressed into the MPEG2, MPEG4-AVC, or the VC-1 format is inputthereto, deletes unnecessary information if required before outputtingit. When noncompressed video file is input, such a video file is inputto a video encoder, compressed according to parameters specified by theuser, and then output.

The Java™ importing unit 55 d sends the following data to the diskcreating apparatus 56: Java™ program source codes created by the Java™program creating apparatus 54; program ancillary information; ID classsource codes; and BDJ object generating information. The Java™ importingunit 55 d, using the title configuration information, associates a filegroup, which is composed of the imported Java™ program source codes,program ancillary information, ID class source codes and BDJ objectgenerating information, with a corresponding BDJ object, and sets theBDJ object generating information for BDJ object nodes of the titleconfiguration information.

6) Disk Creating Apparatus 56

The disk creating apparatus 56 is composed of an ID conversion unit 56a, a still image encoder 56 b, a database generating unit 56 c, a Java™program building unit 56 d, a multiplexer 56 e, a formatting unit 56 fand a disk image creating unit 56 g.

<ID Conversion Unit 56 a>

The ID conversion unit 56 a converts an ID class source code sent to thedisk creating apparatus 56 from the Java™ importing unit 55 d into atitle number and a PlayList number. The ID conversion unit 56 a alsoconverts the BDJ object generating information so that PlayList namesdefined in a BDJ object match actual PlayList numbers on the disk.

<Still Image Encoder 56 b>

The still image encoder 56 b, in the case when input BD-ROM scenariodata includes still images or an area in which still images are stored,selects an appropriate still image from among the input still images,and converts the selected still image into one of the MPEG2, MPEG4-AVC,and VC1 formats compliant with the BD-ROM standard.

<Database Generating Unit 56 c>

The database generating unit 56 c generates a database for scenario datacompliant with the BD-ROM standard based on the input BD-ROM scenariodata and the BDJ object generating information sent from the IDconversion unit 56 a. Here, the term “database” is a collective term forIndex.bdmv, Movie objects, PlayLists and BDJ objects defined in theabove-mentioned BD-ROM.

<Java™ Program Building Unit 56 d>

The Java™ program building unit 56 d performs a compilation process onthe ID class source codes converted by the ID conversion unit 56 a andthe Java™ program source codes, and outputs a Java™ program.

<Multiplexer 56 e>

The multiplexer 56 e multiplexes multiple elementary streams forrealizing videos, audios, subtitles and menus described in the BD-ROMscenario data to obtain a digital stream called an AVClip in theMPEG2-TS format. Additionally, the multiplexer 56 e outputs the AVCliptogether with Clip information which has information related to theAVClip.

Specifically speaking, the multiplexer 56 e detects where in the digitalstream generated for the BD-ROM (i) an I Picture exists in the casewhere the included video elementary stream is in the MPEG2, (ii) an IPicture or an IDR Picture exists in the case where the stream is in theMPEG4-AVC, and (iii) an I Picture exists in the case where the stream isin the VC1. Then, the multiplexer 56 e generates an EP_map byassociating the display time of the above-mentioned Picture with a TSpacket, of the AVClip in the MEPG2-TS, in which the top data of thePicture is stored. The multiplexer 56 e creates Clip information byparing the EP_map that the multiplexer 56 e has generated and attributeinformation indicating audio and video attributes for each digitalstream detected from the reel set file.

The reason why the EP_Map is created by the multiplexer 56 e is that theEP_Map is information very closely related to the AVClip in the MPEG2-TSformat output from the multiplexer 56 e. In addition, the AVClip createdfor the use in the BD-ROM could have a very large file size, and ittherefore requires time for creating the EP_Map because the AVClip witha large file size has to be read again in order to create the EP_Mapafter the creation of the AVClip. On the other hand, creating the EP_Mapduring the creation of the AVClip reduces the time for the EP_Mapcreation since the large AVClip file does not have to be read twice.

The multiplexer 56 e also changes the multiplexing method usingparameters for the multiplexer 56 e included in the BD-ROM scenariodata. For example, when the parameters are set so that 1^(st) and 2^(nd)AVClips to be multiplexed are seamlessly connected, the multiplexer 56 eperforms multiplexing of the 2^(nd) AVClip using, as an initial value,the buffer state after the 1^(st) AVClip is decoded so as not to disruptthe buffer model as described above.

<Formatting Unit 56 f>

The formatting unit 56 f performs a file allocation process using theabove-mentioned database, AVClips and Java™ programs as inputs and adata structure appropriate for the BD-ROM format. The formatting unit 56f creates a directory structure specifying the application layer of theBD-ROM, and allocates each file to an appropriate location. At thispoint, the formatting unit 56 f associates the Java™ programs with theAVClips by defining a tree structure. According to the association,multiple files used for playback are categorized into units calledblocks. This apparatus makes the association of files completed bycreating such a tree structure based on interactive operations with theuser.

<Disk Image Creating Unit 56 g>

The disk image creating unit 56 g obtains volume images by using theabove-mentioned database and AVClips and allocating these to addressesappropriate for the BD-ROM format.

For creating volume images, the disk image creating unit 56 g allocatesrelated file groups so as to make them physically continuous, whichthereby enables efficient readout of the disk at the time of playback.Regarding a block whose seamless flag is “On”, the disk image creatingunit 56 g allocates the file groups so that AVClips belonging to theblock are played seamlessly. Specifically speaking, the disk imagecreating unit 56 g makes the allocations in the disk to satisfy theminimum extent size and the maximum jump distance, which are conditionsfor physical allocation to realize the above-mentioned seamlessplayback.

7) Verification Apparatus 57

The verification apparatus 57 is composed of an emulator unit 57 a andverifier unit 57 b.

The emulator unit 57 a plays actual movie contents using the volumeimages as inputs, and verifies, for example, whether operations intendedby the producer—e.g. transition from a menu to the main movie—areproperly conducted, whether subtitle changes and audio changes operateas intended, and whether videos and audios have intended qualities.

The verifier unit 57 b verifies whether the produced data complies withthe BD-ROM standard using the above-mentioned volume image.

In order to realize Picture in Picture with Out_of_MUX streams, thetotal bit rate of TS packets in multiple elementary streams which arepermitted, in the STN_table, to be played simultaneously must be limitedto 48M bits/second or less. In order to check whether the limitation ismet, the verifier unit 57 b determines if the bit amount in adiscretional period of one second on the ATC time axis is at or lessthan the limitation. The unit time of one second is called “Window”, andcan be located at any position on the time axis of the ATC Sequence.That is to say, the bit amount of the decoded elementary streams duringany period of one second must be 48M bits or less.

At authoring time, the verifier unit 57 b checks whether the bit amountof a TS packet over the period of one second is 48M bits or less whilekeeping the window shifting on the Source packet sequence by one packeteach time. When the limitation is satisfied, the verifier unit 57 bshifts the Window to the next TS packet. If the limitation is notsatisfied, the verifier unit 57 b determines that it violates the BD-ROMstandard. When the Out_Time of the Window reaches the last Source packetafter the repetition of such shifts, the verifier unit 57 b determinesthat the Source packets conform to the BD-ROM standard.

Thus, the volume images are verified by the emulator unit 57 a andverifier unit 57 b, which returns to an appropriate process to do theoperation again when finding an error. After these two verificationprocesses, the volume image goes through the master creation unit 58,which then creates data for BD-ROM press. In turn, the data for BD-ROMpress is sent to a pressing process for disk production.

Next, a processing flow of the formatting process is described inreference to FIG. 54.

In Step S301, the user sets a title configuration of the BD-ROM usingthe title configuration creating apparatus 51.

In Step S302, the user creates scenario data having a structure of aseamless video menu using the BD scenario generating apparatus 53.Herewith, PlayLists for the seamless video menu are created in theBD-ROM scenario data.

In Step S303, the user prepares videos, audios, still images andsubtitle information used for a title, and subsequently imports theseinformation into the disk creating apparatus 56 using the materialcreating/importing apparatus 55.

In Step S304, the user creates Java™ program source codes for a Java™title, program ancillary information, and ID class source codes usingthe Java™ programming apparatus 54.

In Step S305, the user imports, into the disk creating apparatus 56, theJava™ program source codes, program ancillary information and ID classsource codes created in Step S4 using the Java™ importing unit 55 d.

In Step S306, the disk creating apparatus 56 converts the ID classsource codes and the description of the BDJ object generatinginformation into title numbers and PlayList numbers on the actual diskusing the ID conversion unit 56 a.

In Step S307, the Java™ program building unit 56 d creates Java™programs by the compilation process using the source codes output inStep S306. Note that Steps S306 and 5307 can be skipped when the titleconfiguration information does not include a Java™ title.

In Step S308, the still image encoder 56 b, in the case when the BD-ROMscenario data includes still images or an area in which still images arestored, converts an appropriate still image into one of the MPEG2,MPEG4-AVC and VC1 formats compliant with the BD-ROM standard.

In Step S309, the multiplexer 56 e multiplexes multiple elementarystreams based on the BD-ROM scenario data and creates AVClips in theMPEG2-TS format.

In Step S310, the database generating unit 56 c creates databaseinformation compliant with the BD-ROM standard based on the BD-ROMscenario data.

In Step S311, the formatting unit 56 f performs file allocationcompliant with the BD-ROM standard using the Java™ programs created inStep S307, the AVClip created in Step S309 and the database created inStep S310 as inputs. At this point, the formatting unit 56 f associatesthe Java™ programs with the AVClips and creates file associationinformation.

In Step S312, the disk image creating unit 56 g creates volume imagesappropriate for the BD-ROM format using the file groups created in StepS311 while referencing the file associating information.

In Step S313, the verification unit 57 verifies the disk image createdin Step S312. When finding an error, the verification unit 57 returns toan appropriate process to do the operation again.

The following describes multiplexing of the primary and secondary videostreams and EP_map creation.

For multiplexing the primary and secondary video streams, a PTSindicating a display time of each picture and a DTS indicating adecoding time of each picture in the respective GOP are compared. Then,the multiplexing is performed so that the pictures constituting theprimary video and the pictures constituting the secondary video areroughly positioned at the same position or adjacent to each other.

Next is described how the primary and secondary video streams aremultiplexed.

Level 1 and Level 2 in FIG. 55 shows a TS packet sequence constituting aprimary video stream and a TS packet sequence constituting a secondaryvideo stream allocated on the same ATC time axis.

As described in Embodiment 1, a primary video stream and a secondaryvideo stream are converted into a PES packet sequence and a TS packetsequence, respectively. ATSs are attached to the TS packets so that theTS packet sequences obtained in this way are serially positioned on asingle ATS time axis.

Note here that not all coordinates on the ATC time axis are occupied bythe TS packets constituting a primary video stream, and coordinatesaround GOPs are empty. This is because it is designed to position, inthe free coordinates, a different type of data which will be played insynchronization with pictures of the primary video. Time stamps areattached to the TS packets so that the TS packets of the secondary videostream are allocated to the free coordinates, i.e. coordinates which arenot occupied by the TS packets of the primary video stream. Level 3indicates a transport stream obtained by the multiplexing.

Thus, by attaching ATSs which indicate unoccupied coordinates on the ATCtime axis of the primary video and serially arranging the TS packets,the primary video stream is multiplexed with the secondary video stream.The TS packets serially arranged in the multiplexing are identified byserial numbers. These serial numbers are called SPNs, and the locationsof the Source packets in the BD-ROM are indicated by the SPNs.

When the primary and secondary video streams have been multiplexed inthis way, required primary and secondary video streams can be taken outat a necessary time by reading the single transport stream in order fromthe top. However, when playback needs to start not from the top of thestream but in the middle of the stream according to a skip operation ora jump operation with a time specification, GOP boundaries of theprimary and secondary videos have to be taken into consideration.

<Synchronized Playback>

Primary and secondary videos are separate streams as elementary streams,however, when the secondary video stream is an IN-MUX stream, requiredprimary and secondary video streams can be taken out at a necessary timeby reading the single transport stream in order from the top at the timeof playback. However, when playback needs to start not from the top ofthe stream but in the middle of the stream according to a skip operationor a jump operation with a time specification, GOP boundaries of theprimary and secondary videos have to be taken into consideration.

FIG. 58 shows a belong relationship indicating that each of themultiplexed Source packets belong to which GOP of the primary videostream or the secondary video stream. The boxes in Level 1 of the figureshows a belong relationship indicating that each TS packet of an AVClipbelongs to which one of the multiple GOPs included in the primary videostream. It can be seen that, with these boxes, Source packets from theaddress n1 to immediately before the address n2 belong to the GOP-1,Source packets from the address n2 to immediately before the address n3belong to the GOP-2, and Source packets from the address n3 onwardbelong to the GOP-3.

The boxes in Level 2 shows a belong relationship indicating that each TSpacket of the AVClip belongs to which one of the multiple GOPs includedin the secondary video stream. It can be seen that, with these boxes,Source packets from the address u1 to immediately before the address u2belong to the GOP-1, Source packets from the address u2 to immediatelybefore the address u3 belong to the GOP-2, and Source packets from theaddress n3 onward belong to the GOP-3.

In this case, when Source packets are read from the SPNn1 and SPNn2, thetop of GOPs SPNu1 and SPNu2 of the secondary video stream come after theSPNn1 and SPNn2 and therefore not only the GOPs of the primary video butalso the GOPs of the secondary video can be read out to thereby completePicture in Picture. That is, when playback is to be started from the(primary) GOP-2 which is the second GOP of the primary video, if theplayback is started from the SPNn2 which is the first packet included inthe (primary) GOP-2, the (secondary) GOP2—the second GOP of thesecondary video synchronizing the primary video—is also read. Therefore,it is possible to play the primary video in synchronization with thesecondary video from the start of the playback without difficulty.

However, when Source packets are read from the SPNn3, the GOP of thesecondary video comes before the n3, and therefore the GOP of thesecondary video cannot be read. That is, when the playback is to bestarted from SPNn3 because the playback is desired to start from the(primary) GOP-3, if the (secondary) GOP-3 comes before the (primary)GOP-3, the data in the GOP included in the (secondary) GOP-3 cannot beread from the top even if the transport stream is read from the SPNn3onward. As a result, the video included in the GOP may not be fullydecoded. In this case, although the playback of the primary video startsfrom the video of the GOP-3, the playback of the secondary videobelatedly starts from the video of the GOP-4, or the playback of thevideo of the primary video's GOP-3 starts with the playback of themistimed secondary video.

Two methods can be considered for starting the playback of the primaryand secondary video in accordance with each other from a specified timeor GOP: imposing controls on the order of multiplexing; and determininga start point in the playback apparatus.

When GOP boundaries are aligned on the streams, it is important fromwhich point the playback starts. In the case where the start point ofthe playback is specified with a clock time, the playback apparatusconverts the time information into a SPN and determines the startingpoint for the playback by referring to the EP_map.

FIG. 57 shows an EP_map set only for the primary video. Level 1 showspictures constituting the primary and secondary videos and Level 2 showsthe EP_map. Level 3 shows GOPs of the primary and secondary videostreams. In this case, the time information is a playback start time ofa primary video's GOP and a SPN is an address of the top of the GOP.Since the playback apparatus reads data from a point indicated by theaddress, the data of the secondary video needs to start after the GOP ofthe primary video. This is the method of imposing controls on the orderof multiplexing.

In the case where the playback is started from a time stored in theEP_map, by making both primary and secondary videos' GOPs have the sametime durations and always positioning the start of the primary video'sGOP before the start of the secondary video's GOP, it is possible to,even if playback is made to jump to any time point, display the primaryvideo and secondary video together from that time point to which thejump was made.

FIG. 58 shows EP_maps each set for the primary video and the secondaryvideo. Level 1 and Level 3 are the same as for the previous figure.Level 2 indicates the EP_maps individually set for the primary videostream and secondary video stream. By setting the EP_maps as shown inthe figure, when the playback start point is provided in the clock time,corresponding EP_maps for the primary and secondary videos can be found.The playback is then started from, among the SPNs corresponding to timeinformation, an address of the preceding point, and whereby it ispossible to read the primary and secondary videos' GOPs of the specifiedtime from their beginning. This is the method of determining the startpoint on the playback apparatus side. By registering the same timeinformation to the respective EP_maps, a start address corresponding tothe primary and secondary videos can be obtained when a time isspecified.

To be more specific, the playback apparatus converts the timeinformation into SPNs on the primary video stream using the EP_map forthe primary video stream and also converts the time information intoSPNs on the secondary video stream using the EP_map for the secondaryvideo stream.

Subsequently, the SPNs obtained in this way are compared. When the SPN1is smaller than the SPN2, the SPN1 is converted into an address of theBD-ROM. When the SPN2 is smaller than the SPN1, the SPN2 is convertedinto an address of the BD-ROM.

Thus, a single piece of time information is converted into SPNs on theprimary and secondary video streams and a smaller one of these SPNs isconverted into an address. Therefore, if the GOP of the primary videostream precedes that of the secondary video stream, or if the GOP of thesecondary video stream precedes that of the primary video stream, bothGOPs can be read out.

Note that, when there are multiple primary and secondary videos, a startaddress with the earliest point can be selected from among playbackstart points of video streams required to be displayed, and it is notnecessary to perform an address search on streams not to be displayed.

Embodiment 7

The present embodiment relates to an improvement for causing theplayback apparatus to realize chapter-by-chapter playback. It is oftenthe case that, sections called chapters—created by dividing a movieaccording to its scenes or contents—are defined in a movie title, andplayback can be started from the beginning of a chapter selected by theuser. It is considered to apply this chapter selecting application toPicture in Picture.

The beginning of a chapter is a break in scenes or a change in thecontent, and it is preferable that, when a chapter is played from itsbeginning, playback of not only the primary video but also the secondaryvideo starts at the time of the starting scene.

FIG. 59 shows PlayListMark information of the PlayList information.Level 2 and Level 3 in the figure show GOPs of the primary and secondaryvideo streams, and Level 1 shows the PlayListMark information. ThePlayListMark information is established by associating each of multiplechapter numbers with time information.

The position of a chapter is represented by the time information.Therefore, in order to determine a playback start address based on thechapter, the playback apparatus can identify the address by theabove-mentioned method using the EP_map and start readout of data fromthe address.

When the EP_map is set only for the primary video, the marks areprovided for the primary video, and the start point of the secondaryvideo to be played in synchronization should be placed later than thestart point of the primary video.

<Skip Point>

Similarly to chapter boundaries, a jump point can be specified by a skipoperation made by the user by using a mark that can specify one point ona time axis of a title. The control on GOP positioning for a skip pointand the playback method from a skip point are the same as for thebeginning of a chapter.

Now the case is considered where skip points are individually set formultiple secondary videos.

It is possible that, when skip points are set for the primary video, theuser can specify the skip point and make the playback point jump theretono matter whether secondary videos are displayed or not. This is used,for example, when skip points are provided at points where scenes changein a main movie. On the other hand, regarding skip points of a secondaryvideo, which is for example a video of a director's commentary, the userwould be confused if these skip points are active except when acorresponding video is being displayed.

FIG. 60 shows PlayListMark information specifying, as chapters,positions where secondary video streams exist. In the figure, Levels 2,3 and 4 show a primary video stream and two secondary video streams,respectively while Level 1 shows the content of the PlayListMarkinformation.

The secondary video stream #1, which is a video of a director'scommentary, has a skip point since the content of the commentary changesin the middle. In this case, if the secondary video stream #1 is beingdisplayed, the user can make a jump by specifying the skip point (MarkNumber 2). However, it should be designed so that the user cannot makethis jump when the secondary video stream #1 is not being displayed orwhen the secondary video stream #2 is being displayed.

Accordingly, in the present embodiment, each piece of the markinformation of the PlayListMark information is associated with a fieldcalled “stream specification”. Each piece of the mark informationoriginally includes a mark number and a corresponding time information,and now a stream specification field is provided to the markinformation.

If the stream specification field is set as “no specification (all)”, achapter jump for the mark information point is allowed independently ofthe display of secondary video streams. If “secondary video stream #1”is set in the stream specification field, the chapter jump for the markinformation point is allowed only when the secondary video stream #1 isplayed.

If “secondary video stream #2” is set in the stream specification field,the chapter jump for the mark information point is allowed only when thesecondary video stream #2 is played. Herewith, the playback apparatusenables the user to use skip points appropriate to the content of thedisplayed video.

Thus, by setting skip points on individual streams, a mechanism allowingthe user to make a jump to an appropriate position in accordance withthe displayed content can be offered.

Note that in the case where it is desired to move the playback startpoint to the position of Mark 2 by forcedly specifying the mark numberusing GUI, the display can be forcibly changed to the secondary videostream #1 and the playback point is moved to the skip point even if thesecondary video stream #1 is not being displayed or another secondaryvideo stream is being displayed.

Embodiment 8

The present embodiment relates to an improvement for the case where theprimary and secondary videos are interlaced videos. The picture data iscomposed of a TOP field and a Bottom field to be hereinafter described.The TOP field is a compilation of odd-numbered lines out of the linesconstituting a frame. The Bottom field is a compilation of even-numberedlines out of the line constituting a frame.

FIG. 61A shows video fields constituting primary and secondary videos.In Picture in Picture, the video fields structuring the primary videoand those structuring the secondary video are composed in a one-to-onefashion. Accordingly, the video fields of the primary and secondaryvideos to be composed may be in-phase or antiphase to one another.

FIG. 61B shows combinations where the video fields to be composed arein-phase to one another. The in-phase combination means that, as shownin the figure, both primary and secondary videos are TOP fields, oralternatively Bottom fields.

FIG. 61C shows combinations where the video fields to be composed areantiphase to one another. The antiphase combination means that, as shownin the figure, the primary video is a TOP field while the secondaryvideo is a Bottom field, or alternatively the primary video is a Bottomfield while the secondary video is a TOP field.

Two different types of combinations are thus possible, and when theprimary and secondary videos are composed, two kinds of Picture inPicture images, as shown in FIGS. 62A and 62B, can be created. FIG. 62Ashows a Picture in Picture image in which the even-numbered lines of theprimary video's video field match the even-numbered lines of thesecondary video's video field. Such a Picture in Picture image can beoutput and played on a TV.

FIG. 62B shows a Picture in Picture image in which the even-numberedlines of the primary video's video field match the odd-numbered lines ofthe secondary video's video field. Such a Picture in Picture imagecannot be output and played on a TV.

In order to avoid getting an unplayable Picture in Picture image, i.e.the composite image of FIG. 62B, in the recording medium of the presentembodiment, the position and display point of the secondary video areadjusted in the following manner.

FIG. 63 shows, in the case where a given video field Fx from amongmultiple video fields constituting the primary video and a given videofield Fy from among multiple video fields constituting the secondaryvideo are to be composed and output, how to adjust the position anddisplay time of the video field Fy.

Here, when the coordinates specified by the PiP_horizontal_position andPiP_vertical_position in the PiP_metadata_block are (Px, Py), theposition of Py is adjusted by sliding the coordinates (Px, Py) upward ordownward, as shown by the arrow sd1.

When the display timing of the primary video's field data on theplayback time axis is Ty, the display point specified by thePiP_metadata_time_stamp is adjusted by sliding the display timing in thefuture or past direction of time, as shown by the arrow sd2.

FIG. 64 shows the case where the field Fy of the secondary video isdisplayed together with an in-phase field of the primary video. Here, Pyof the coordinates (Px, Py), which should be specified by thePiP_horizontal_position and the PiP_vertical_position of thePiP_metadata block, is selected from one (even1 in the figure) among themultiple even-numbered lines in the primary video's field. Thereby, aplayable Picture in Picture image can be obtained.

FIG. 65 shows the case where the field Fy of the secondary video isdisplayed together with an antiphase field of the primary video. Here,Py of the coordinates (Px, Py), which should be specified by thePiP_horizontal_position and the PiP_vertical_position of thePiP_metadata block, is selected from one (odd1 in the figure) among themultiple even-numbered lines in the primary video's field. Thereby, aplayable Picture in Picture image can be obtained.

FIG. 66 shows the case where a secondary video field is displayed on aneven-numbered line of the primary video. Here, a time point Ty, whichshould be specified by the PiP_metadata_time_stamp of thePiP_metadata_block is selected from time points at which in-phase fieldsof the primary video should be displayed. Herewith, a playable Picturein Picture image can be obtained.

FIG. 67 shows the case where a secondary video field is displayed on anodd-numbered line of the primary video. Here, a time point Ty, whichshould be specified by the PiP_metadata_time_stamp of thePiP_metadata_block is selected from time points at which antiphasefields of the primary video should be displayed. Herewith, a playablePicture in Picture image can be obtained.

A playable combination can be created based on what is desired toidealize—a time point of the secondary video or coordinates of thesecondary video. Herewith, at the stage of authoring, it is assured thatthe playback output will be properly carried out.

Embodiment 9

The present embodiment relates to making compensation on the playbackapparatus side in the case when adjustment for the PiP_metadata_block,which is described in the previous embodiment, has not been made at thestage of authoring.

The playback apparatus in the present embodiment checks whether thecomposite pattern of Picture in Picture is one shown in FIG. 62A or oneshown in FIG. 62B. When it is one shown in FIG. 62B, the playbackapparatus makes adjustments illustrated in FIGS. 64 to 67. Thereby,Picture in Picture can be implemented even if thePiP_metadata_time_stamp, PiP_horizontal_position, andPiP_vertical_position used for creating a Picture in Picture withinstances have not been adjusted during the authoring.

According to the present embodiment, even if adjustments for realizingPicture in Picture have not been made at the time of authoring, theplayback apparatus is able to make compensation for this.

Embodiment 10

The present embodiment relates to an improvement for the case where aJava™ platform is structured by mounting the Java™ 2 Micro_Edition(J2ME)Personal Basis Profile (PBP 1.0) and the Globally Executable MHPspecification (GEM1.0.2) for package media targets on the playbackapparatus of each embodiment, and the playback apparatus is caused toexecute a BD-J application.

PlayList information includes MainPath information and Subpathinformation as described in Embodiment 1, and the MainPath informationspecifies a primary video stream and SubPlayItem of the Subpathinformation specifies a secondary video stream. Accordingly, a Javaapplication can cause the playback apparatus to perform Picture inPicture playback by instructing a Java Virtual Machine to generate JMFplayer instances which play PlayLists. The generation of JMF playerinstances is preferably conducted by using a method called JMFA“BD://00001.mp1s”.

Note that the Java Virtual Machine may be caused to generate a JMFplayer instance of PlayItem information specifying a playback section inthe primary video stream and a JMF player instance of SubPlayIteminformation specifying a playback section in the secondary video stream,and then the playback apparatus may be caused to perform playback basedon these two player instance.

<Supplementary Notes>

The best modes for carrying out the invention, as far as known to theapplicant at the time of filing the present application, have beendescribed. However, further improvements or modifications can be made onthe present invention in terms of the following technical topics. Itshould be noted here that whether or not to make such improvements ormodifications is optional, and depends on the implementer of theinvention.

<Title>

It is preferable to create a “module manager” in the playback apparatus,which selects a title according to the mount of the BD-ROM, a useroperation, or a state of the apparatus. The decoder in the BD-ROMplayback apparatus performs playback of an AVClip based on the PlayListinformation according to the title selection by the “module manager”.

When the “module manager” selects a title, the application managerexecutes signaling using an application management table (AMT)corresponding to a previous title and an AMT corresponding to thecurrent title. The signaling takes control that terminates the operationof an application described in the AMT of the previous title but notdescribed in the AMT of the current AMT while commences the operation ofan application not described in the AMT of the previous title butdescribed in the AMT of the current title.

<Directory Structure in Local Storage>

Individual areas in the local storage described in each embodiment arepreferably created under a directory corresponding to a disk's rootcertificate of the BD-ROM.

The disk's root certificate is a root certificate that is distributed bythe root certificate authority and assigned to the BD-ROM by the creatorof the BD-ROM. The disk's root certificate is encoded in, for example,the X.509. The specifications of the X.509 have been issued by theInternational Telegraph and Telephone Consultative Committee, anddescribed in CCITT Recommendation X.509 (1988), “TheDirectory—Authentication Framework”.

In addition, it is preferable that the contents recorded in the BD-ROMand local storage be encoded using the Advanced Access Content System(AACS), a signature information be attached thereto, and a useauthorization be specified in a permission file.

<Realization of Control Procedure>

Both the control procedures explained in the above-described embodimentsusing the flowcharts and the control procedures of the functionalcomponents explained in the above-described embodiments satisfy therequirements for the “program invention” since the above-mentionedcontrol procedures are realized concretely using the hardware resourcesand are the creation of a technical idea utilizing natural laws.

Production of Program of Present Invention

The program of the present invention is an object program that canexecute on a computer. The object program is composed of one or moreprogram codes that cause the computer to execute each step in theflowchart or each procedure of the functional components. There arevarious types of program codes such as the native code of the processor,and JAVA™ byte code. There are also various forms of realizing the stepsof the program codes. For example, when each step can be realized byusing an external function, the call statements for calling the externalfunctions are used as the program codes. Program codes that realize onestep may belong to different object programs. In the RISC processor inwhich the types of instructions are limited, each step of flowcharts maybe realized by combining arithmetic operation instructions, logicaloperation instructions, branch instructions and the like.

The program of the present invention can be produced as follows. First,the software developer writes, using a programming language, a sourceprogram that achieves each flowchart and functional component. In thiswriting, the software developer uses the class structure, variables,array variables, calls to external functions, and so on, which conformto the sentence structure of the programming language s/he uses.

The written source program is sent to the compiler as files. Thecompiler translates the source program and generates an object program.

The translation performed by the compiler includes processes such as thesentence structure analysis, optimization, resource allocation, and codegeneration. In the sentence structure analysis, the characters andphrases, sentence structure, and meaning of the source program areanalyzed and the source program is converted into an intermediateprogram. In the optimization, the intermediate program is subjected tosuch processes as the basic block setting, control flow analysis, anddata flow analysis. In the resource allocation, to adapt to theinstruction sets of the target processor, the variables in theintermediate program are allocated to the register or memory of thetarget processor. In the code generation, each intermediate instructionin the intermediate program is converted into a program code, and anobject program is obtained.

After the object program is generated, the programmer activates alinker. The linker allocates the memory spaces to the object programsand the related library programs, and links them together to generate aload module. The generated load module is based on the presumption thatit is read by the computer and causes the computer to execute theprocedures indicated in the flowcharts and the procedures of thefunctional components. The program of the present invention can beproduced in this way.

The program of the present invention can be used as follows. When theprogram of the present invention is used as an embedded program, theload module as the program is written into an instruction ROM, togetherwith the Basic Input/Output System (BIOS) program and various pieces ofmiddleware (operation systems). The program of the present invention isused as the control program of the playback apparatus 300 as theinstruction ROM is embedded in the control unit and is executed by theCPU.

When the playback apparatus is a bootstrap model, the Basic Input/OutputSystem (BIOS) program is embedded in an instruction ROM, and variouspieces of middleware (operation systems) are preinstalled in a secondaryrecording medium such as a hard disk. Also, a boot ROM for activatingthe system from the secondary recording medium is provided in theplayback apparatus. In this case, only the load module is supplied tothe playback apparatus via a transportable recording medium and/or anetwork, and is installed in the secondary recording medium as oneapplication. This enables the playback apparatus to perform thebootstrapping by the boot ROM to activate an operation system, and thencauses the CPU to execute the installed load module as one applicationso that the program of the present application can be used.

As described above, when the playback apparatus is a bootstrap model,the program of the present invention can be used as one application.Accordingly, it is possible to transfer, lend, or supply, via a network,the program of the present invention separately.

<Controller 22>

The controller 22 can be realized as one system LSI.

The system LSI is obtained by implementing a bear chip on a high-densitysubstrate and packaging them. The system LSI is also obtained byimplementing a plurality of bear chips on a high-density substrate andpackaging them, so that the plurality of bear chips have an outerappearance of one LSI (such a system LSI is called a multi-chip module).

The system LSI has a QFP (Quad Flat Package) type and a PGA (Pin GridArray) type. In the QFP-type system LSI, pins are attached to the foursides of the package. In the PGA-type system LSI, a lot of pins areattached to the entire bottom.

These pins function as an interface with other circuits. The system LSI,which is connected with other circuits through such pins as aninterface, plays a role as the core of the playback apparatus 300.

As described above in “Used as Embedded Program”, the load module as theprogram, the Basic Input/Output System (BIOS) program and various piecesof middleware (operation systems) are written into an instruction ROM.The major improvement of the embodiments is achieved by the load moduleas the program. It is therefore possible to produce a system LSI of thepresent invention by mounting the instruction ROM therein, in which theload module as the program is stored, as the bear chip.

A specific production procedure is as follows. First, based on thestructure diagram shown in each embodiment, a circuitry diagram forparts to be a system LSI is created, and components in the structurediagram are actualized using circuit elements and ICs or LSIs.

Each component is thus actualized, and then buses connecting between thecircuit elements and ICs or LSIs, peripheral circuitry, an interfacewith the outside and the like are specified. Besides, connecting lines,power lines, ground lines, clock signal lines and the like are alsospecified. In these specifications, an operational timing of eachcomponent is adjusted in view of the specification of the LSIs, and thecircuitry diagram is completed by making adjustments such as allocatinga required bandwidth to each component.

After the circuitry diagram is complete, a implementation design ismade. The implementation design is a work for creating a substratelayout to decide where on the substrate the components (circuit elementsand ICs or LSIs) of the circuitry diagram created in the circuitrydesign are positioned, or how the connecting lines on the circuitrydiagram are wired on the substrate.

Here, the implementation design includes an automatic placement and anautomatic wiring.

In the case of using a CAD apparatus, this automatic placement can berealized by using a special algorithm called the “centroid method”. Theautomatic wiring defines connecting lines for connecting pins ofcomponents of the circuitry diagram using metal foils and vias. When theCAD apparatus is used, the wiring process can be realized by usingspecial algorithm called the maze method and the line search method.

The implementation design is conducted in this way, and once the layouton the substrate is decided, the result of the implementation design isconverted into CAM data and output to equipments such as NC machinetools. The NC machine tools perform the SoC implementation or SiPimplementation based on the CAM data. The SoC (System on chip)implementation is a technique that burns multiple circuits onto onechip. The SiP (System in package) implementation is a technique thatputs multiple chips in one package using resin. By the above procedure,the system LSI of the present invention can be produced based on theinternal structure diagrams of the playback apparatus described in eachembodiment.

It should be noted here that although the term LSI is used here, it maybe called IC, LSI, super LSI, ultra LSI or the like, depending on thelevel of integration.

Further, part or all of the components of each playback apparatus may beachieved as one chip. The integrated circuit is not limited to the SoCimplementation or the SiP implementation, but may be achieved by adedicated circuit or a general purpose processor. It is also possible toachieve the integrated circuit by using the FPGA (Field ProgrammableGate Array) that can be re-programmed after it is manufactured, or areconfigurable processor that can reconfigure the connection andsettings of the circuit cells inside the LSI. Furthermore, a technologyfor an integrated circuit that replaces the LSI may appear in the nearfuture as the semiconductor technology improves or branches into anothertechnologies. In that case, the new technology may be incorporated intothe integration of the functional blocks constituting the presentinvention as described above. Such possible technologies includebiotechnology.

<Architecture>

Since the system LSI of the present invention is assumed to be builtinto the BD-ROM playback apparatus, the system LSI preferably conformsto the UniPhier architecture.

The system LSI complying to the Uniphier architecture is composed of thefollowing circuitry block.

Data Parallel Processor DPP

This is a SIMD processor in which multiple element processors operateconcurrently, and parallelizes decode processing of multiple pixelsconstituting a picture by concurrently operating computing units builtin the individual element processors with one instruction. Realizingsuch parallelization achieves decoding of video streams. Theabove-mentioned video decoder is implemented as this data parallelprocessor.

Instruction Parallel Processor

This is composed of: an instruction RAM; an instruction cache; a dataRAM; a “Local Memory Controller” made up of a data cache; an instructionfetch unit; a decoder; an execution unit; a “Processing Unit” made up ofregister files; and a “Virtual Multi Processor Unit” that causes theProcessing Unit to execute parallelization of multiple applications. Thegraphics decoder and audio decoder other than the video decoder areimplemented in the system LSI as the instruction parallel processor IPP.

CPU Block

This is composed of an ARM core; an external bus interface (BUS ControlUnit: BCU); a DMA controller; a timer; a peripheral circuitry, such as avector interrupt controller; an UART; a GPIO (General Purpose InputOutput); and a peripheral interface, such as a synchronous serialinterface. The above-mentioned controller is implemented in the systemLSI as this CPU block.

Stream I/O Block

This performs data input and output with a BD-ROM drive apparatus, ahard disk drive apparatus and a SD memory card drive apparatus on theexternal bus connected via a USB interface or an ATA packet interface.

AVI/O Block

This is composed of audio input and output, video input and output, andan OSD controller, and performs data input and output of TV and AVamplifiers.

Memory Control Block

This is a block which realizes reading and writing of a SD-RAM connectedvia the external bus, and is composed of: an internal bus connectingunit that controls the internal connection between each block; an accesscontrol unit that performs data transfer with the SD-RAM connected tothe outside of the system LSI; and an access schedule unit that adjustsa request of each block for accessing the SD-RAM.

As to the production of the system LSI conforming to such architecture,it is desirable to adopt a bottom-up layout technique that completes onechip layout by making layout design for each circuitry block, such as anIPP and a DPP, and building up each block after the performance of eachcircuitry block is optimized.

INDUSTRIAL APPLICABILITY

The recording medium and playback apparatus of the present invention canbe mass-produced based on the internal structures of them shown in theembodiments above. As such, the and playback apparatus of the presentinvention has the industrial applicability.

1.-29. (canceled)
 30. A recording medium on which a plurality of videostreams and a table are recorded, wherein: each of the plurality ofvideo streams is a secondary video stream to be played together with aprimary video stream, and includes picture data representing a childimage to be displayed in Picture in Picture that is composed of a parentimage and the child image, and; the table includes entries of secondaryvideo streams that are permitted to be played among the plurality ofsecondary video streams.
 31. The recording medium of claim 30, whereinthe table further includes entries of audio streams and combinationinformation, the combination information indicates a plurality ofentries of the audio streams that are allowed to be combined with asecondary video stream, in correspondence with a reference value to apacket identifier of the secondary video stream